@torrow/sdk-client 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -133,191 +133,6 @@ type TorrowOptions = {
133
133
  signal?: AbortSignal;
134
134
  };
135
135
 
136
- /** Причина отказа SDK; сама по себе не определяет результат записи. */
137
- declare enum TorrowSdkErrorCategory {
138
- /** Неверные параметры операции. */ InvalidInput = "InvalidInput",
139
- /** Операция недопустима в текущем состоянии. */ InvalidState = "InvalidState",
140
- /** Подтверждённый отказ доступа. */ AccessDenied = "AccessDenied",
141
- /** Недостаточно данных для безопасного выполнения. */ InsufficientData = "InsufficientData",
142
- /** Ответ не соответствует ожидаемой структуре. */ InvalidResponse = "InvalidResponse",
143
- /** Доказанное несовпадение версии. */ VersionConflict = "VersionConflict",
144
- /** Требуется аутентификация. */ AuthenticationRequired = "AuthenticationRequired",
145
- /** Способ выполнения не поддерживается. */ UnsupportedOperation = "UnsupportedOperation",
146
- /** Сервер ограничил частоту запросов. */ RateLimited = "RateLimited",
147
- /** Прочий HTTP-отказ. */ HttpFailure = "HttpFailure",
148
- /** Распознанный сбой транспорта. */ TransportFailure = "TransportFailure",
149
- /** Сбой сохранения или загрузки состояния. */ StorageFailure = "StorageFailure",
150
- /** Запрос отменён. */ Cancelled = "Cancelled",
151
- /** Причина зависимости не распознана. */ Unknown = "Unknown"
152
- }
153
- /** Начало вызова fetch конкретного запроса, без гарантии доставки. */
154
- declare enum TorrowSdkRequestState {
155
- /** fetch ещё не вызван. */ NotStarted = "NotStarted",
156
- /** Начат вызов fetch. */ Started = "Started"
157
- }
158
- /** Область описанного предметного изменения. */
159
- declare enum TorrowSdkEffectArea {
160
- /** Изменение на сервере. */ Remote = "Remote",
161
- /** Изменение памяти текущей сессии. */ SessionMemory = "SessionMemory",
162
- /** Изменение постоянного хранилища. */ Storage = "Storage"
163
- }
164
- /** Доказанность отдельного изменения. */
165
- declare enum TorrowSdkEffectState {
166
- /** Доказано отсутствие изменения. */ NotApplied = "NotApplied",
167
- /** Выполнение изменения подтверждено. */ Applied = "Applied",
168
- /** Результат изменения неизвестен. */ Unknown = "Unknown"
169
- }
170
- /** Домен предметного уточнения ошибки. */
171
- declare enum TorrowSdkErrorDomain {
172
- /** Чтение метаданных необязательных файлов. */ FileMetadata = "FileMetadata",
173
- /** Частичное обновление item через GET и CAS PUT. */ ItemPatch = "ItemPatch",
174
- /** Настройки поведения услуг и ресурсов. */ BehaviorSettings = "BehaviorSettings",
175
- /** Пошаговый OTP. */ Otp = "Otp",
176
- /** Сессия токенов и составной вход. */ AuthSession = "AuthSession"
177
- }
178
- /** Причины недостаточных данных для чтения метаданных файла. */
179
- declare enum FileMetadataErrorReason {
180
- /** Полнота карточки не подтверждена. */ ContentTypeUnavailable = "ContentTypeUnavailable",
181
- /** Подписка не позволяет получить полную карточку. */ SubscriptionIsNotValid = "SubscriptionIsNotValid",
182
- /** Ссылка на файл не содержит ID. */ FileIdUnavailable = "FileIdUnavailable",
183
- /** Подписка в полной коллекции не содержит ID. */ SubscriptionIdUnavailable = "SubscriptionIdUnavailable"
184
- }
185
- /** Имена составных операций чтения метаданных. */
186
- declare enum FileMetadataOperation {
187
- /** Изображение начальной подписки программы лояльности. */ GetInitialSubscriptionImageInfo = "getInitialSubscriptionImageInfo",
188
- /** Аватар элемента. */ GetImageInfo = "getImageInfo",
189
- /** Вложение заметки. */ GetFileInfo = "getFileInfo",
190
- /** Фотография контакта. */ GetPhotoInfo = "getPhotoInfo",
191
- /** Изображение выбранной подписки карты. */ GetSubscriptionImageInfo = "getSubscriptionImageInfo"
192
- }
193
- /** Локальные стадии чтения метаданных. */
194
- declare enum FileMetadataFailureAt {
195
- /** Проверка аргументов. */ ValidateInput = "ValidateInput",
196
- /** Чтение карточки. */ ReadItem = "ReadItem",
197
- /** Проверка полной карточки и связи. */ ValidateItem = "ValidateItem",
198
- /** Чтение метаданных. */ ReadMetadata = "ReadMetadata",
199
- /** Проверка ответа метаданных. */ ValidateMetadata = "ValidateMetadata"
200
- }
201
- /** Безопасное предметное уточнение чтения файла. */
202
- interface FileMetadataErrorDetail {
203
- /** Домен чтения метаданных. */ readonly domain: TorrowSdkErrorDomain.FileMetadata;
204
- /** Дополнительная причина недостаточности данных. */ readonly reason?: FileMetadataErrorReason;
205
- }
206
- /** Причина отказа OTP. */
207
- declare enum OtpErrorReason {
208
- /** Неверное продолжение. */ InvalidChallenge = "InvalidChallenge",
209
- /** Метод не поддержан приложением. */ UnsupportedMethod = "UnsupportedMethod",
210
- /** Отсутствует заголовок авторизации. */ AuthHeaderMissing = "AuthHeaderMissing",
211
- /** Исчерпан лимит отправки. */ CodeRequestLimitExceeded = "CodeRequestLimitExceeded"
212
- }
213
- /** Причина отказа сессии. */
214
- declare enum AuthSessionErrorReason {
215
- /** Сессия ещё не готова к выдаче токенов. */ SessionNotReady = "SessionNotReady",
216
- /** Ошибка пользовательского callback. */ CallbackFailed = "CallbackFailed"
217
- }
218
- /** Шаги изменения настроек. */
219
- declare enum BehaviorSettingsEffectStep {
220
- /** Целевая запись настроек. */ Write = "Write"
221
- }
222
- /** Шаг частичного изменения основного документа; не транзакция внутренних действий сервера. */
223
- declare enum ItemPatchEffectStep {
224
- /** Запись основного документа элемента. */ Write = "Write"
225
- }
226
- /** Шаги изменения сессии. */
227
- declare enum AuthSessionEffectStep {
228
- /** Создание серверного продолжения входа по ссылке. */ CreateAuthSession = "CreateAuthSession",
229
- /** Закрытие локальной сессии. */ CloseSession = "CloseSession",
230
- /** Выдача токенов. */ IssueTokens = "IssueTokens",
231
- /** Обновление токенов. */ RefreshTokens = "RefreshTokens",
232
- /** Отзыв токенов. */ RevokeTokens = "RevokeTokens",
233
- /** Отправка кода или ссылки. */ SendCode = "SendCode",
234
- /** Замена токенов в памяти. */ SetTokens = "SetTokens",
235
- /** Очистка токенов в памяти. */ ClearTokens = "ClearTokens",
236
- /** Сохранение токенов. */ SaveTokens = "SaveTokens",
237
- /** Очистка хранилища. */ ClearStorage = "ClearStorage"
238
- }
239
- /** Безопасное описание отдельного изменения; не журнал всех вызовов. */
240
- interface TorrowSdkEffect {
241
- /** Область изменения. */ readonly area: TorrowSdkEffectArea;
242
- /** Предметный шаг выбранного метода. */ readonly step: BehaviorSettingsEffectStep | AuthSessionEffectStep | ItemPatchEffectStep;
243
- /** Доказанность результата шага. */ readonly state: TorrowSdkEffectState;
244
- }
245
- /** Предметное уточнение настроек. */
246
- interface BehaviorSettingsErrorDetail {
247
- /** Область ошибки настроек. */ readonly domain: TorrowSdkErrorDomain.BehaviorSettings;
248
- /** У настроек нет дополнительной причины; доступ к общему optional reason остаётся типизированным. */ readonly reason?: never;
249
- }
250
- /** Безопасное уточнение частичного изменения элемента. */
251
- interface ItemPatchErrorDetail {
252
- /** Область ошибки составной операции patch. */ readonly domain: TorrowSdkErrorDomain.ItemPatch;
253
- /** Достаточно общей категории; дополнительная причина не вводится. */ readonly reason?: never;
254
- }
255
- /** Предметное уточнение OTP; секреты здесь не размещаются. */
256
- interface OtpErrorDetail {
257
- /** Область ошибки OTP. */ readonly domain: TorrowSdkErrorDomain.Otp;
258
- /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: OtpErrorReason;
259
- /** Проверенное время следующей отправки, Unix milliseconds; отсутствует без подсказки. */ readonly nextSendAtMs?: number;
260
- /** Проверенная длительность ожидания в секундах. */ readonly retryAfterSeconds?: number;
261
- }
262
- /** Предметное уточнение сессии. */
263
- interface AuthSessionErrorDetail {
264
- /** Область ошибки сессии. */ readonly domain: TorrowSdkErrorDomain.AuthSession;
265
- /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: AuthSessionErrorReason;
266
- }
267
- /** Поддержанные предметные детали ошибки. */
268
- type TorrowSdkErrorDetail = BehaviorSettingsErrorDetail | ItemPatchErrorDetail | OtpErrorDetail | AuthSessionErrorDetail | FileMetadataErrorDetail;
269
- /** Безопасные HTTP-метаданные без тела и URL. */
270
- interface TorrowSdkHttpDetails {
271
- /** Статус полученного ответа. */ readonly status: number;
272
- /** Код API; числовой wire-код приводится к строке. */ readonly apiCode?: string;
273
- /** Известное SDK кодовое имя; произвольные серверные строки исключены. */ readonly apiErrorName?: string;
274
- /** Идентификатор запроса для поддержки. */ readonly requestId?: string;
275
- /** Идентификатор трассировки сервера. */ readonly traceIdentifier?: string;
276
- }
277
- /** Чувствительная диагностика; доступна только по явному запросу. */
278
- interface TorrowSdkSensitiveDetails {
279
- /** Исходное исключение зависимости, включая его исходный стек. */ readonly cause?: unknown;
280
- /** Исходное тело ответа. */ readonly body?: unknown;
281
- /** Полный URL запроса, который может содержать токены. */ readonly url?: string;
282
- /** Данные явного отзыва OTP-токенов. */ readonly cleanup?: {
283
- /** Секрет отзыва; не логировать. */ readonly refreshToken: string;
284
- };
285
- }
286
- /** Безопасный снимок ошибки. Отсутствие effects не доказывает отсутствие изменений. */
287
- interface TorrowSdkErrorInfo {
288
- /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
289
- /** Необязательное пояснение для человека, не для ветвления. Передающий текст отвечает за его безопасность. */ readonly publicMessage?: string;
290
- /** Метаданные HTTP, если они известны. */ readonly http?: TorrowSdkHttpDetails;
291
- /** Предметное уточнение выбранного домена. */ readonly detail?: TorrowSdkErrorDetail;
292
- /** Начало fetch соответствующего запроса. */ readonly request?: TorrowSdkRequestState;
293
- /** Стабильное имя выбранной составной операции, без аргументов. */ readonly operation?: string;
294
- /** Локальная стадия сбоя, без пользовательских данных. */ readonly failureAt?: string;
295
- /** Только описанные изменения данной операции; отсутствие означает отсутствие сведений. */ readonly effects?: readonly TorrowSdkEffect[];
296
- }
297
- /** Параметры создания ошибки; безопасные поля унаследованы из TorrowSdkErrorInfo. */
298
- interface TorrowSdkErrorInit extends TorrowSdkErrorInfo {
299
- /** Исходные данные, исключённые из стандартной диагностики. */ readonly sensitive?: TorrowSdkSensitiveDetails;
300
- }
301
- /** Единая ошибка сетевых и выбранных предметных операций SDK. */
302
- declare class TorrowSdkError extends Error implements TorrowSdkErrorInfo {
303
- #private;
304
- /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
305
- /** Пояснение без изменения исходной строки: до 512 UTF-16 единиц, не пустое после trim; иначе undefined. */ readonly publicMessage?: string;
306
- /** Безопасные метаданные ответа. */ readonly http?: TorrowSdkHttpDetails;
307
- /** Неизменяемое предметное уточнение. */ readonly detail?: TorrowSdkErrorDetail;
308
- /** Начало fetch; не доставка. */ readonly request?: TorrowSdkRequestState;
309
- /** Имя составной операции без пользовательских значений. */ readonly operation?: string;
310
- /** Стадия отказа без аргументов. */ readonly failureAt?: string;
311
- /** Неизменяемые сведения об описанных изменениях. */ readonly effects?: readonly TorrowSdkEffect[];
312
- constructor(init: TorrowSdkErrorInit);
313
- /** Безопасный снимок для обычной сериализации и диагностики. */
314
- toJSON(): TorrowSdkErrorInfo;
315
- /** Явный доступ к секретной диагностике; вызывающий код отвечает за её защиту. */
316
- getSensitiveDetails(): TorrowSdkSensitiveDetails;
317
- /** Новый снимок для составной операции; исходная ошибка не изменяется. */
318
- withContext(context: Partial<TorrowSdkErrorInfo>): TorrowSdkError;
319
- }
320
-
321
136
  /**
322
137
  * This file was auto-generated by openapi-typescript.
323
138
  * Do not make direct changes to the file.
@@ -36261,8 +36076,11 @@ interface components {
36261
36076
  id?: string | null;
36262
36077
  meta?: components["schemas"]["ObjectInfo"];
36263
36078
  };
36264
- /** @enum {string} */
36265
- NoteType: "Unknown" | "Text" | "Html" | "Hlink" | "File" | "Photo" | "Voice" | "Geolocation" | "Qr" | "ServiceSpecification" | "Markdown";
36079
+ /**
36080
+ * @description Публичные форматы SDK: Html, Markdown и Text. Остальные серверные строки при чтении становятся Text без преобразования data или вложений (ADR 0002).
36081
+ * @enum {string}
36082
+ */
36083
+ NoteType: "Html" | "Markdown" | "Text";
36266
36084
  NoteView: {
36267
36085
  data?: unknown;
36268
36086
  noteType?: components["schemas"]["NoteType"];
@@ -37521,6 +37339,197 @@ interface components {
37521
37339
  pathItems: never;
37522
37340
  }
37523
37341
 
37342
+ /**
37343
+ * Единый алиас на `components["schemas"]`.
37344
+ * Локальные `type Schemas = …` в разных модулях при склейке `index.d.ts` (tsup) дают коллизии имён и суффиксы `$1`, `$2`, …
37345
+ */
37346
+ type OpenApiSchemas = components["schemas"];
37347
+
37348
+ /** Причина отказа SDK; сама по себе не определяет результат записи. */
37349
+ declare enum TorrowSdkErrorCategory {
37350
+ /** Неверные параметры операции. */ InvalidInput = "InvalidInput",
37351
+ /** Операция недопустима в текущем состоянии. */ InvalidState = "InvalidState",
37352
+ /** Подтверждённый отказ доступа. */ AccessDenied = "AccessDenied",
37353
+ /** Недостаточно данных для безопасного выполнения. */ InsufficientData = "InsufficientData",
37354
+ /** Ответ не соответствует ожидаемой структуре. */ InvalidResponse = "InvalidResponse",
37355
+ /** Доказанное несовпадение версии. */ VersionConflict = "VersionConflict",
37356
+ /** Требуется аутентификация. */ AuthenticationRequired = "AuthenticationRequired",
37357
+ /** Способ выполнения не поддерживается. */ UnsupportedOperation = "UnsupportedOperation",
37358
+ /** Сервер ограничил частоту запросов. */ RateLimited = "RateLimited",
37359
+ /** Прочий HTTP-отказ. */ HttpFailure = "HttpFailure",
37360
+ /** Распознанный сбой транспорта. */ TransportFailure = "TransportFailure",
37361
+ /** Сбой сохранения или загрузки состояния. */ StorageFailure = "StorageFailure",
37362
+ /** Запрос отменён. */ Cancelled = "Cancelled",
37363
+ /** Причина зависимости не распознана. */ Unknown = "Unknown"
37364
+ }
37365
+ /** Начало вызова fetch конкретного запроса, без гарантии доставки. */
37366
+ declare enum TorrowSdkRequestState {
37367
+ /** fetch ещё не вызван. */ NotStarted = "NotStarted",
37368
+ /** Начат вызов fetch. */ Started = "Started"
37369
+ }
37370
+ /** Область описанного предметного изменения. */
37371
+ declare enum TorrowSdkEffectArea {
37372
+ /** Изменение на сервере. */ Remote = "Remote",
37373
+ /** Изменение памяти текущей сессии. */ SessionMemory = "SessionMemory",
37374
+ /** Изменение постоянного хранилища. */ Storage = "Storage"
37375
+ }
37376
+ /** Доказанность отдельного изменения. */
37377
+ declare enum TorrowSdkEffectState {
37378
+ /** Доказано отсутствие изменения. */ NotApplied = "NotApplied",
37379
+ /** Выполнение изменения подтверждено. */ Applied = "Applied",
37380
+ /** Результат изменения неизвестен. */ Unknown = "Unknown"
37381
+ }
37382
+ /** Домен предметного уточнения ошибки. */
37383
+ declare enum TorrowSdkErrorDomain {
37384
+ /** Чтение метаданных необязательных файлов. */ FileMetadata = "FileMetadata",
37385
+ /** Частичное обновление item через GET и CAS PUT. */ ItemPatch = "ItemPatch",
37386
+ /** Настройки поведения услуг и ресурсов. */ BehaviorSettings = "BehaviorSettings",
37387
+ /** Пошаговый OTP. */ Otp = "Otp",
37388
+ /** Сессия токенов и составной вход. */ AuthSession = "AuthSession"
37389
+ }
37390
+ /** Причины недостаточных данных для чтения метаданных файла. */
37391
+ declare enum FileMetadataErrorReason {
37392
+ /** Полнота карточки не подтверждена. */ ContentTypeUnavailable = "ContentTypeUnavailable",
37393
+ /** Подписка не позволяет получить полную карточку. */ SubscriptionIsNotValid = "SubscriptionIsNotValid",
37394
+ /** Ссылка на файл не содержит ID. */ FileIdUnavailable = "FileIdUnavailable",
37395
+ /** Подписка в полной коллекции не содержит ID. */ SubscriptionIdUnavailable = "SubscriptionIdUnavailable"
37396
+ }
37397
+ /** Имена составных операций чтения метаданных. */
37398
+ declare enum FileMetadataOperation {
37399
+ /** Изображение начальной подписки программы лояльности. */ GetInitialSubscriptionImageInfo = "getInitialSubscriptionImageInfo",
37400
+ /** Аватар элемента. */ GetImageInfo = "getImageInfo",
37401
+ /** Вложение заметки. */ GetFileInfo = "getFileInfo",
37402
+ /** Фотография контакта. */ GetPhotoInfo = "getPhotoInfo",
37403
+ /** Изображение выбранной подписки карты. */ GetSubscriptionImageInfo = "getSubscriptionImageInfo"
37404
+ }
37405
+ /** Локальные стадии чтения метаданных. */
37406
+ declare enum FileMetadataFailureAt {
37407
+ /** Проверка аргументов. */ ValidateInput = "ValidateInput",
37408
+ /** Чтение карточки. */ ReadItem = "ReadItem",
37409
+ /** Проверка полной карточки и связи. */ ValidateItem = "ValidateItem",
37410
+ /** Чтение метаданных. */ ReadMetadata = "ReadMetadata",
37411
+ /** Проверка ответа метаданных. */ ValidateMetadata = "ValidateMetadata"
37412
+ }
37413
+ /** Безопасное предметное уточнение чтения файла. */
37414
+ interface FileMetadataErrorDetail {
37415
+ /** Домен чтения метаданных. */ readonly domain: TorrowSdkErrorDomain.FileMetadata;
37416
+ /** Дополнительная причина недостаточности данных. */ readonly reason?: FileMetadataErrorReason;
37417
+ }
37418
+ /** Причина отказа OTP. */
37419
+ declare enum OtpErrorReason {
37420
+ /** Неверное продолжение. */ InvalidChallenge = "InvalidChallenge",
37421
+ /** Метод не поддержан приложением. */ UnsupportedMethod = "UnsupportedMethod",
37422
+ /** Отсутствует заголовок авторизации. */ AuthHeaderMissing = "AuthHeaderMissing",
37423
+ /** Исчерпан лимит отправки. */ CodeRequestLimitExceeded = "CodeRequestLimitExceeded"
37424
+ }
37425
+ /** Причина отказа сессии. */
37426
+ declare enum AuthSessionErrorReason {
37427
+ /** Сессия ещё не готова к выдаче токенов. */ SessionNotReady = "SessionNotReady",
37428
+ /** Ошибка пользовательского callback. */ CallbackFailed = "CallbackFailed"
37429
+ }
37430
+ /** Шаги изменения настроек. */
37431
+ declare enum BehaviorSettingsEffectStep {
37432
+ /** Целевая запись настроек. */ Write = "Write"
37433
+ }
37434
+ /** Шаг частичного изменения основного документа; не транзакция внутренних действий сервера. */
37435
+ declare enum ItemPatchEffectStep {
37436
+ /** Запись основного документа элемента. */ Write = "Write"
37437
+ }
37438
+ /** Шаги изменения сессии. */
37439
+ declare enum AuthSessionEffectStep {
37440
+ /** Создание серверного продолжения входа по ссылке. */ CreateAuthSession = "CreateAuthSession",
37441
+ /** Закрытие локальной сессии. */ CloseSession = "CloseSession",
37442
+ /** Выдача токенов. */ IssueTokens = "IssueTokens",
37443
+ /** Обновление токенов. */ RefreshTokens = "RefreshTokens",
37444
+ /** Отзыв токенов. */ RevokeTokens = "RevokeTokens",
37445
+ /** Отправка кода или ссылки. */ SendCode = "SendCode",
37446
+ /** Замена токенов в памяти. */ SetTokens = "SetTokens",
37447
+ /** Очистка токенов в памяти. */ ClearTokens = "ClearTokens",
37448
+ /** Сохранение токенов. */ SaveTokens = "SaveTokens",
37449
+ /** Очистка хранилища. */ ClearStorage = "ClearStorage"
37450
+ }
37451
+ /** Безопасное описание отдельного изменения; не журнал всех вызовов. */
37452
+ interface TorrowSdkEffect {
37453
+ /** Область изменения. */ readonly area: TorrowSdkEffectArea;
37454
+ /** Предметный шаг выбранного метода. */ readonly step: BehaviorSettingsEffectStep | AuthSessionEffectStep | ItemPatchEffectStep;
37455
+ /** Доказанность результата шага. */ readonly state: TorrowSdkEffectState;
37456
+ }
37457
+ /** Предметное уточнение настроек. */
37458
+ interface BehaviorSettingsErrorDetail {
37459
+ /** Область ошибки настроек. */ readonly domain: TorrowSdkErrorDomain.BehaviorSettings;
37460
+ /** У настроек нет дополнительной причины; доступ к общему optional reason остаётся типизированным. */ readonly reason?: never;
37461
+ }
37462
+ /** Безопасное уточнение частичного изменения элемента. */
37463
+ interface ItemPatchErrorDetail {
37464
+ /** Область ошибки составной операции patch. */ readonly domain: TorrowSdkErrorDomain.ItemPatch;
37465
+ /** Достаточно общей категории; дополнительная причина не вводится. */ readonly reason?: never;
37466
+ }
37467
+ /** Предметное уточнение OTP; секреты здесь не размещаются. */
37468
+ interface OtpErrorDetail {
37469
+ /** Область ошибки OTP. */ readonly domain: TorrowSdkErrorDomain.Otp;
37470
+ /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: OtpErrorReason;
37471
+ /** Проверенное время следующей отправки, Unix milliseconds; отсутствует без подсказки. */ readonly nextSendAtMs?: number;
37472
+ /** Проверенная длительность ожидания в секундах. */ readonly retryAfterSeconds?: number;
37473
+ }
37474
+ /** Предметное уточнение сессии. */
37475
+ interface AuthSessionErrorDetail {
37476
+ /** Область ошибки сессии. */ readonly domain: TorrowSdkErrorDomain.AuthSession;
37477
+ /** Дополнительное уточнение; отсутствие означает, что достаточно category. */ readonly reason?: AuthSessionErrorReason;
37478
+ }
37479
+ /** Поддержанные предметные детали ошибки. */
37480
+ type TorrowSdkErrorDetail = BehaviorSettingsErrorDetail | ItemPatchErrorDetail | OtpErrorDetail | AuthSessionErrorDetail | FileMetadataErrorDetail;
37481
+ /** Безопасные HTTP-метаданные без тела и URL. */
37482
+ interface TorrowSdkHttpDetails {
37483
+ /** Статус полученного ответа. */ readonly status: number;
37484
+ /** Код API; числовой wire-код приводится к строке. */ readonly apiCode?: string;
37485
+ /** Известное SDK кодовое имя; произвольные серверные строки исключены. */ readonly apiErrorName?: string;
37486
+ /** Идентификатор запроса для поддержки. */ readonly requestId?: string;
37487
+ /** Идентификатор трассировки сервера. */ readonly traceIdentifier?: string;
37488
+ }
37489
+ /** Чувствительная диагностика; доступна только по явному запросу. */
37490
+ interface TorrowSdkSensitiveDetails {
37491
+ /** Исходное исключение зависимости, включая его исходный стек. */ readonly cause?: unknown;
37492
+ /** Исходное тело ответа. */ readonly body?: unknown;
37493
+ /** Полный URL запроса, который может содержать токены. */ readonly url?: string;
37494
+ /** Данные явного отзыва OTP-токенов. */ readonly cleanup?: {
37495
+ /** Секрет отзыва; не логировать. */ readonly refreshToken: string;
37496
+ };
37497
+ }
37498
+ /** Безопасный снимок ошибки. Отсутствие effects не доказывает отсутствие изменений. */
37499
+ interface TorrowSdkErrorInfo {
37500
+ /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
37501
+ /** Необязательное пояснение для человека, не для ветвления. Передающий текст отвечает за его безопасность. */ readonly publicMessage?: string;
37502
+ /** Метаданные HTTP, если они известны. */ readonly http?: TorrowSdkHttpDetails;
37503
+ /** Предметное уточнение выбранного домена. */ readonly detail?: TorrowSdkErrorDetail;
37504
+ /** Начало fetch соответствующего запроса. */ readonly request?: TorrowSdkRequestState;
37505
+ /** Стабильное имя выбранной составной операции, без аргументов. */ readonly operation?: string;
37506
+ /** Локальная стадия сбоя, без пользовательских данных. */ readonly failureAt?: string;
37507
+ /** Только описанные изменения данной операции; отсутствие означает отсутствие сведений. */ readonly effects?: readonly TorrowSdkEffect[];
37508
+ }
37509
+ /** Параметры создания ошибки; безопасные поля унаследованы из TorrowSdkErrorInfo. */
37510
+ interface TorrowSdkErrorInit extends TorrowSdkErrorInfo {
37511
+ /** Исходные данные, исключённые из стандартной диагностики. */ readonly sensitive?: TorrowSdkSensitiveDetails;
37512
+ }
37513
+ /** Единая ошибка сетевых и выбранных предметных операций SDK. */
37514
+ declare class TorrowSdkError extends Error implements TorrowSdkErrorInfo {
37515
+ #private;
37516
+ /** Общая причина отказа. */ readonly category: TorrowSdkErrorCategory;
37517
+ /** Пояснение без изменения исходной строки: до 512 UTF-16 единиц, не пустое после trim; иначе undefined. */ readonly publicMessage?: string;
37518
+ /** Безопасные метаданные ответа. */ readonly http?: TorrowSdkHttpDetails;
37519
+ /** Неизменяемое предметное уточнение. */ readonly detail?: TorrowSdkErrorDetail;
37520
+ /** Начало fetch; не доставка. */ readonly request?: TorrowSdkRequestState;
37521
+ /** Имя составной операции без пользовательских значений. */ readonly operation?: string;
37522
+ /** Стадия отказа без аргументов. */ readonly failureAt?: string;
37523
+ /** Неизменяемые сведения об описанных изменениях. */ readonly effects?: readonly TorrowSdkEffect[];
37524
+ constructor(init: TorrowSdkErrorInit);
37525
+ /** Безопасный снимок для обычной сериализации и диагностики. */
37526
+ toJSON(): TorrowSdkErrorInfo;
37527
+ /** Явный доступ к секретной диагностике; вызывающий код отвечает за её защиту. */
37528
+ getSensitiveDetails(): TorrowSdkSensitiveDetails;
37529
+ /** Новый снимок для составной операции; исходная ошибка не изменяется. */
37530
+ withContext(context: Partial<TorrowSdkErrorInfo>): TorrowSdkError;
37531
+ }
37532
+
37524
37533
  /**
37525
37534
  * Единые алиасы OpenAPI schema → `*Dto` / shared имена.
37526
37535
  * Собрано скриптом `scripts/build-openapi-dto-aliases.mjs` — не дублировать `export type … = components[…]` в доменных `dto.ts`,
@@ -37529,15 +37538,12 @@ interface components {
37529
37538
  type AccountDto = components["schemas"]["Account"];
37530
37539
  type AccountingTransactionDto = components["schemas"]["AccountingTransaction"];
37531
37540
  type AccountingTransactionStateDto = components["schemas"]["AccountingTransactionState"];
37532
- type ActionHistoryInfoDto = components["schemas"]["ActionHistoryInfo"];
37533
37541
  type ActionHistoryStateDto = components["schemas"]["ActionHistoryState"];
37534
37542
  type ActionHistoryTypeDto = components["schemas"]["ActionHistoryType"];
37535
37543
  type ActivityStatusDto = components["schemas"]["ActivityStatus"];
37536
37544
  type AddExternalAuthReqDto = components["schemas"]["AddExternalAuthReq"];
37537
37545
  type AddExternalAuthRespDto = components["schemas"]["AddExternalAuthResp"];
37538
- type AddProfileRespDto = components["schemas"]["AddProfileResp"];
37539
37546
  type AdvisedItemTypeDto = components["schemas"]["AdvisedItemType"];
37540
- type AnnouncementInfoDto = components["schemas"]["AnnouncementInfo"];
37541
37547
  type AnnouncementStateDto = components["schemas"]["AnnouncementState"];
37542
37548
  type ApiKeyInfoDto = components["schemas"]["ApiKeyInfo"];
37543
37549
  type ApproveCaseParticipationReqDto = components["schemas"]["ApproveCaseParticipationReq"];
@@ -37547,14 +37553,11 @@ type BlockReasonDto = components["schemas"]["BlockReason"];
37547
37553
  type BookResourcesForMeReqDto = components["schemas"]["BookResourcesForMeReq"];
37548
37554
  type BookResourcesForOthersReqDto = components["schemas"]["BookResourcesForOthersReq"];
37549
37555
  type CalendarItemDto = components["schemas"]["CalendarItem"];
37550
- type CalendarViewDto = components["schemas"]["CalendarView"];
37551
37556
  type CancelCaseParticipationReqDto = components["schemas"]["CancelCaseParticipationReq"];
37552
37557
  type CaseItemDto = components["schemas"]["CaseItem"];
37553
37558
  type CaseParticipantDto = components["schemas"]["CaseParticipant"];
37554
37559
  type CaseParticipantFieldsDto = components["schemas"]["CaseParticipantFields"];
37555
37560
  type CaseParticipantTypeDto = components["schemas"]["CaseParticipantType"];
37556
- type CaseParticipantViewDto = components["schemas"]["CaseParticipantView"];
37557
- type CaseViewDto = components["schemas"]["CaseView"];
37558
37561
  type ChangeMoneyReceiveReqDto = components["schemas"]["ChangeMoneyReceiveReq"];
37559
37562
  type ChangeOrderServiceReqDto = components["schemas"]["ChangeOrderServiceReq"];
37560
37563
  type CheckInPropsDto = components["schemas"]["CheckInProps"];
@@ -37564,9 +37567,7 @@ type CompleteDeletingUserReqDto = components["schemas"]["CompleteDeletingUserReq
37564
37567
  type CompleteDeletingUserRespDto = components["schemas"]["CompleteDeletingUserResp"];
37565
37568
  type ContactItemDto = components["schemas"]["ContactItem"];
37566
37569
  type ContactPropertiesDto = components["schemas"]["ContactProperties"];
37567
- type ContactViewDto = components["schemas"]["ContactView"];
37568
37570
  type ContextItemDto = components["schemas"]["ContextItem"];
37569
- type ContextViewDto = components["schemas"]["ContextView"];
37570
37571
  type CreateApiKeyRequestDto = components["schemas"]["CreateApiKeyRequest"];
37571
37572
  type CreateApiKeyResponseDto = components["schemas"]["CreateApiKeyResponse"];
37572
37573
  type CreateAuthSessionReqDto = components["schemas"]["CreateAuthSessionReq"];
@@ -37583,10 +37584,8 @@ type DeviceInfoDto = components["schemas"]["DeviceInfo"];
37583
37584
  type DictionarySortConditionDto = components["schemas"]["DictionarySortCondition"];
37584
37585
  type ExcludeFromGroupsReqDto = components["schemas"]["ExcludeFromGroupsReq"];
37585
37586
  type ExcludeRespDto = components["schemas"]["ExcludeResp"];
37586
- type ExportGraphDto = components["schemas"]["ExportGraph"];
37587
37587
  type ExportRequestDto = components["schemas"]["ExportRequest"];
37588
37588
  type ExternalAuthDto = components["schemas"]["ExternalAuth"];
37589
- type FeedbackDto = components["schemas"]["Feedback"];
37590
37589
  type FeedbackOptionsDto = components["schemas"]["FeedbackOptions"];
37591
37590
  type FileInfoDto = components["schemas"]["FileInfo"];
37592
37591
  type GenerateReportReqDto = components["schemas"]["GenerateReportReq"];
@@ -37601,11 +37600,9 @@ type GetLoyaltySystemsStatisticsRespDto = components["schemas"]["GetLoyaltySyste
37601
37600
  type GetParticipationCountRespDto = components["schemas"]["GetParticipationCountResp"];
37602
37601
  type GetReCheckInScheduleReqDto = components["schemas"]["GetReCheckInScheduleReq"];
37603
37602
  type GetServiceWorkloadInfoRequestDto = components["schemas"]["GetServiceWorkloadInfoRequest"];
37604
- type GetServiceWorkloadInfoRespDto = components["schemas"]["GetServiceWorkloadInfoResp"];
37605
37603
  type GetShareItemSessionReqDto = components["schemas"]["GetShareItemSessionReq"];
37606
37604
  type GetTimetableStatisticsRequestDto = components["schemas"]["GetTimetableStatisticsRequest"];
37607
37605
  type GetTorrowIdRespDto = components["schemas"]["GetTorrowIdResp"];
37608
- type GroupStatusDto = components["schemas"]["GroupStatus"];
37609
37606
  type HobbyDto = components["schemas"]["Hobby"];
37610
37607
  type ImportByFileRequestDto = components["schemas"]["ImportByFileRequest"];
37611
37608
  type ImportByUniqueNameRequestDto = components["schemas"]["ImportByUniqueNameRequest"];
@@ -37617,55 +37614,42 @@ type InitAddingAccountReqDto = components["schemas"]["InitAddingAccountReq"];
37617
37614
  type InitAddingAccountRespDto = components["schemas"]["InitAddingAccountResp"];
37618
37615
  type InitDeletingUserRespDto = components["schemas"]["InitDeletingUserResp"];
37619
37616
  type IntegrationDto = components["schemas"]["Integration"];
37620
- type ItemFeedbackDto = components["schemas"]["ItemFeedback"];
37621
37617
  type ItemSortConditionDto = components["schemas"]["ItemSortCondition"];
37622
37618
  type ItemViewSortConditionDto = components["schemas"]["ItemViewSortCondition"];
37623
37619
  type LoyaltyCardFilterConditionDto = components["schemas"]["LoyaltyCardFilterCondition"];
37624
37620
  type LoyaltyCardItemDto = components["schemas"]["LoyaltyCardItem"];
37625
37621
  type LoyaltyCardSortConditionDto = components["schemas"]["LoyaltyCardSortCondition"];
37626
37622
  type LoyaltyCardSubscriptionDto = components["schemas"]["LoyaltyCardSubscription"];
37627
- type LoyaltyCardViewDto = components["schemas"]["LoyaltyCardView"];
37628
37623
  type LoyaltySystemItemDto = components["schemas"]["LoyaltySystemItem"];
37629
37624
  type LoyaltySystemsStatisticsRespDto = components["schemas"]["LoyaltySystemsStatisticsResp"];
37630
- type LoyaltySystemViewDto = components["schemas"]["LoyaltySystemView"];
37631
37625
  type NoteItemDto = components["schemas"]["NoteItem"];
37632
37626
  type NoteTypeDto = components["schemas"]["NoteType"];
37633
- type NoteViewDto = components["schemas"]["NoteView"];
37634
37627
  type NotificationWayDto = components["schemas"]["NotificationWay"];
37635
37628
  type ObjectInfoDto = components["schemas"]["ObjectInfo"];
37636
37629
  type ObjectSortConditionDto = components["schemas"]["ObjectSortCondition"];
37637
37630
  type OperationTypeDto = components["schemas"]["OperationType"];
37638
37631
  type OrderFilterDto = components["schemas"]["OrderFilter"];
37639
- type OrderRespDto = components["schemas"]["OrderResp"];
37640
37632
  type OrderViewSortConditionDto = components["schemas"]["OrderViewSortCondition"];
37641
37633
  type ParticipantStateDto = components["schemas"]["ParticipantState"];
37642
37634
  type ParticipantTypeDto = components["schemas"]["ParticipantType"];
37643
- type ParticipantViewDto = components["schemas"]["ParticipantView"];
37644
37635
  type ParticipationDto = components["schemas"]["Participation"];
37645
37636
  type ParticipationRespDto = components["schemas"]["ParticipationResp"];
37646
37637
  type PatchCaseReqDto = components["schemas"]["PatchCaseReq"];
37647
37638
  type PersonalReminderDto = components["schemas"]["PersonalReminder"];
37648
37639
  type PickOrderReqDto = components["schemas"]["PickOrderReq"];
37649
- type PickOrderRespDto = components["schemas"]["PickOrderResp"];
37650
37640
  type PlaceDto = components["schemas"]["Place"];
37651
- type ProfileListRespDto = components["schemas"]["ProfileListResp"];
37652
37641
  type ProfilePropertiesDto = components["schemas"]["ProfileProperties"];
37653
37642
  type PublicityTypeDto = components["schemas"]["PublicityType"];
37654
37643
  type PutUrlRespDto = components["schemas"]["PutUrlResp"];
37655
37644
  type RefreshReqDto = components["schemas"]["RefreshReq"];
37656
37645
  type RegisterUserForAccountRespDto = components["schemas"]["RegisterUserForAccountResp"];
37657
37646
  type RegistrationUserInfoDto = components["schemas"]["RegistrationUserInfo"];
37658
- type RemoveProfileRespDto = components["schemas"]["RemoveProfileResp"];
37659
37647
  type ResourceItemApiDto = components["schemas"]["ResourceItem"];
37660
- type ResourceMindMapViewDto = components["schemas"]["ResourceView"];
37661
- type ResourceViewDto = components["schemas"]["ResourceView"];
37662
37648
  type ReturnOrderReqDto = components["schemas"]["ReturnOrderReq"];
37663
- type ReturnOrderRespDto = components["schemas"]["ReturnOrderResp"];
37664
37649
  type RevokeReqDto = components["schemas"]["RevokeReq"];
37665
37650
  type SaveItemToMindMapReqDto = components["schemas"]["SaveItemToMindMapReq"];
37666
37651
  type SearchLoyaltyCardsReqDto = components["schemas"]["SearchLoyaltyCardsReq"];
37667
37652
  type SearchServiceResourcesReqDto = components["schemas"]["SearchServiceResourcesReq"];
37668
- type SearchServiceResourcesRespDto = components["schemas"]["SearchServiceResourcesResp"];
37669
37653
  type SendCodeReqDto = components["schemas"]["SendCodeReq"];
37670
37654
  type SendCodeRespDto = components["schemas"]["SendCodeResp"];
37671
37655
  type SendCommunicationCodeReqDto = components["schemas"]["SendCommunicationCodeReq"];
@@ -37673,12 +37657,10 @@ type SendCommunicationCodeRespDto = components["schemas"]["SendCommunicationCode
37673
37657
  type SendLinkOfItemReqDto = components["schemas"]["SendLinkOfItemReq"];
37674
37658
  type SendLinkOfItemRespDto = components["schemas"]["SendLinkOfItemResp"];
37675
37659
  type ServiceItemApiDto = components["schemas"]["ServiceItem"];
37676
- type ServiceViewDto = components["schemas"]["ServiceView"];
37677
37660
  type SessionDurationPropertiesDto = components["schemas"]["SessionDurationProperties"];
37678
37661
  type SetGroupItemReqDto = components["schemas"]["SetGroupItemReq"];
37679
37662
  type ShareItemReqDto = components["schemas"]["ShareItemReq"];
37680
37663
  type StepDescriptionDto = components["schemas"]["StepDescription"];
37681
- type TimetableCaseDto = components["schemas"]["TimetableCase"];
37682
37664
  type TimetableDetailsVisibilityDto = components["schemas"]["TimetableDetailsVisibility"];
37683
37665
  type TimetableFilterDto = components["schemas"]["TimetableFilter"];
37684
37666
  type TimetableStatisticsRespDto = components["schemas"]["TimetableStatisticsResp"];
@@ -37701,18 +37683,11 @@ type UpdatePersonalListOrderRespDto = components["schemas"]["UpdatePersonalListO
37701
37683
  type UpdateProfilePropertiesRespDto = components["schemas"]["UpdateProfilePropertiesResp"];
37702
37684
  type UserCalendarDto = components["schemas"]["UserCalendar"];
37703
37685
  type UserDeliveryWayDto = components["schemas"]["UserDeliveryWay"];
37704
- type UserFeedbackDto = components["schemas"]["UserFeedback"];
37705
37686
  type VerifyCommunicationCodeReqDto = components["schemas"]["VerifyCommunicationCodeReq"];
37706
37687
  type VerifyCommunicationCodeRespDto = components["schemas"]["VerifyCommunicationCodeResp"];
37707
37688
  type ViewInfoDto = components["schemas"]["ViewInfo"];
37708
37689
  type WorkloadPeriodDto = components["schemas"]["WorkloadPeriod"];
37709
37690
 
37710
- /**
37711
- * Единый алиас на `components["schemas"]`.
37712
- * Локальные `type Schemas = …` в разных модулях при склейке `index.d.ts` (tsup) дают коллизии имён и суффиксы `$1`, `$2`, …
37713
- */
37714
- type OpenApiSchemas = components["schemas"];
37715
-
37716
37691
  type SolutionData = OpenApiSchemas["SolutionData"];
37717
37692
  type PersonalSolutionData = OpenApiSchemas["PersonalSolutionData"];
37718
37693
  type Metrics = OpenApiSchemas["Metrics"];
@@ -37762,35 +37737,6 @@ type NormalizedPublicity<T> = T extends Date ? T : T extends object ? {
37762
37737
  [K in keyof T]: K extends "publicityType" ? Exclude<T[K], "Private" | "Undefined"> : NormalizedPublicity<T[K]>;
37763
37738
  } : T;
37764
37739
 
37765
- /**
37766
- * Корень иерархии объектов Torrow: схема OpenAPI `TorrowObject`.
37767
- * `format: date-time` → `Date` в **`generated.ts`** (см. **`scripts/openapi-codegen.mjs`**).
37768
- */
37769
- type TorrowObject = TorrowObjectDto;
37770
- /**
37771
- * Общие поля item: схема `TorrowItem` + явное пересечение с `TorrowObject`, чтобы тип оставался подтипом `TorrowObject`.
37772
- */
37773
- type TorrowItem = NormalizedPublicity<TorrowItemDto> & TorrowObject;
37774
- /**
37775
- * Публичный item-тип из доменного OpenAPI-DTO: пересечение с **`TorrowItem`**, чтобы в типах явно
37776
- * участвовали общие поля item и связь с **`TorrowObject`** (после codegen даты уже **`Date`** в DTO).
37777
- */
37778
- type TorrowItemFromDto<D extends object> = NormalizedPublicity<D> & TorrowItem;
37779
- /**
37780
- * Ключи, которые не должны попадать в тело create/update: профиль и дискриминатор,
37781
- * поля социального слоя с отдельными эндпоинтами (`TorrowItemCoreFacade` / `TorrowItemFacade`),
37782
- * служебный `meta`, серверные агрегаты, `contactProperties` контактов
37783
- * (`id` и `image` в теле допустимы — в т.ч. клиентский `id` и `FileInfo` после presigned upload).
37784
- * (`ContactsFacade.updateContactProperties`), **`searchMode`** и **`anyoneAccess`**
37785
- * (read-only для всех item: вычисляются на сервере от **`publicityType`**), а также **`activityStatus`** и **`registerInfo`**
37786
- * (read-only на `ContactItem` в продукте / OpenAPI; у прочих item-типов ключей нет — `Omit` без эффекта),
37787
- * а также **`profileType`**, **`profileProperties`**, **`hasTimetable`** контакта
37788
- * (сценарий Профиля — `POST /api/v1/user/profiles`, тип **`UserProfileItemForAdd`**).
37789
- */
37790
- type TorrowItemKeysExcludedFromItemWriteBody = "personalInfo" | "discriminator" | "publicityType" | "masterInfo" | "integrationIds" | "tags" | "groupInfo" | "solutionData" | "childItemStats" | "feedbackOptions" | "uniqueName" | "blockInfo" | "meta" | "contactProperties" | "activityStatus" | "registerInfo" | "searchMode" | "anyoneAccess" | "profileType" | "profileProperties" | "hasTimetable";
37791
- /** Поля item в телах create/update: без ключей, исключённых в `TorrowItemKeysExcludedFromItemWriteBody`. */
37792
- type TorrowItemForCreateOrUpdate<T extends TorrowItem> = Omit<T, TorrowItemKeysExcludedFromItemWriteBody>;
37793
-
37794
37740
  /** Общие параметры частичного изменения одного элемента; CAS всегда включён. */
37795
37741
  interface TorrowItemPatchOptions {
37796
37742
  /** Ожидаемая версия всего элемента (1..2147483647); отсутствие использует версию внутреннего GET. */
@@ -37825,9 +37771,9 @@ interface TorrowItemPatchResult<TItem> {
37825
37771
  * Сгенерировано: `node scripts/build-sdk-shared-public-types.mjs`
37826
37772
  */
37827
37773
 
37828
- type AccountingTransaction = NormalizedPublicity<AccountingTransactionDto>;
37774
+ type AccountingTransaction = AccountingTransactionRead;
37829
37775
  type AccountingTransactionState = AccountingTransactionStateDto;
37830
- type AddProfileResp = NormalizedPublicity<AddProfileRespDto>;
37776
+ type AddProfileResp = AddProfileRespRead;
37831
37777
  type BalanceValue = BalanceValueDto;
37832
37778
  type DeleteResponse = DeleteResponseDto;
37833
37779
  type DictionarySortCondition = DictionarySortConditionDto;
@@ -37844,40 +37790,1257 @@ type ObjectInfo = ObjectInfoDto;
37844
37790
  type ObjectSortCondition = ObjectSortConditionDto;
37845
37791
  type ParticipantState = ParticipantStateDto;
37846
37792
  type ParticipantType = ParticipantTypeDto;
37847
- type ParticipantView = NormalizedPublicity<ParticipantViewDto>;
37793
+ type ParticipantView = ParticipantViewRead;
37848
37794
  type Participation = ParticipationDto;
37849
37795
  type ParticipationResp = ParticipationRespDto;
37850
37796
  type PutUrlResp = PutUrlRespDto;
37851
- type ResourceView = NormalizedPublicity<ResourceViewDto>;
37797
+ type ResourceView = ResourceViewRead;
37852
37798
  type SaveItemToMindMapReq = SaveItemToMindMapReqDto;
37853
37799
  type SendLinkOfItemReq = SendLinkOfItemReqDto;
37854
37800
  type SendLinkOfItemResp = SendLinkOfItemRespDto;
37855
37801
  type SetGroupItemReq = SetGroupItemReqDto;
37856
37802
  type ShareItemReq = ShareItemReqDto;
37857
- type TimetableCase = NormalizedPublicity<TimetableCaseDto>;
37803
+ type TimetableCase = TimetableCaseRead;
37858
37804
  type TimetableDetailsVisibility = TimetableDetailsVisibilityDto;
37859
37805
  type TimetableFilter = TimetableFilterDto;
37860
37806
  type TorrowObjectType = TorrowObjectTypeDto;
37861
37807
  type UnsetGroupItemReq = UnsetGroupItemReqDto;
37862
37808
  type UpdateFileIdResp = UpdateFileIdRespDto;
37863
37809
 
37864
- type NoteItem = TorrowItemFromDto<NoteItemDto>;
37865
- /** Supported authoring scenarios: Html and Markdown. Other server values remain for compatibility. */
37810
+ type ContactItem = TorrowItemFromDto<Omit<ContactItemDto, "loyaltyCard">> & {
37811
+ /** Карта лояльности с подготовленными общими read-полями; отсутствие карточки сохраняется. */
37812
+ loyaltyCard?: TorrowItem;
37813
+ };
37814
+ /** Канал связи для частичной записи: пользовательские поля {@link Communication}, без серверных checkDate/valueForSearch; rid сохраняет идентичность, checkState по умолчанию Unchecked. */
37815
+ type ContactCommunicationPatch = Omit<Communication, "checkDate" | "valueForSearch">;
37816
+ /** Частичное изменение обычного или профильного Contact. Общие name/image наследуют {@link TorrowItemPatchFields}; пропуск сохраняет поле, вложенное значение заменяется целиком. */
37817
+ interface ContactItemPatch extends TorrowItemPatchFields {
37818
+ /** Полная замена адресов; []/null удаляют адреса, отсутствующий rid создаётся SDK. */
37819
+ addresses?: Address[] | null;
37820
+ /** Дата рождения; null удаляет дату. */
37821
+ birthday?: Date | null;
37822
+ /** Полная замена каналов; []/null очищают, серверные сведения проверки не принимаются на вход. */
37823
+ communications?: ContactCommunicationPatch[] | null;
37824
+ /** Памятные даты целиком; []/null очищают, отсутствующий rid создаётся SDK. */
37825
+ dates?: MemorableDate[] | null;
37826
+ /** Имя человека; null/пустая строка очищают текст без нормализации. */
37827
+ firstName?: string | null;
37828
+ /** Фамилия; null/пустая строка очищают текст. */
37829
+ lastName?: string | null;
37830
+ /** Отчество; null/пустая строка очищают текст. */
37831
+ middleName?: string | null;
37832
+ /** Название компании; null/пустая строка очищают текст. */
37833
+ company?: string | null;
37834
+ /** Должность; null/пустая строка очищают текст. */
37835
+ position?: string | null;
37836
+ /** Описание контакта; null/пустая строка очищают текст. */
37837
+ description?: string | null;
37838
+ /** Пол по OpenAPI; UnknownGender означает неизвестное значение, null не принимается. */
37839
+ gender?: Gender;
37840
+ /** Полная замена ссылок на фотографии; []/null очищают, URL и metadata файла не записываются. */
37841
+ photos?: TorrowItemPatchImage[] | null;
37842
+ /** Визитка целиком с нормализацией трёх слотов; null запрещён, для очистки передать три явно пустых значения. */
37843
+ visitCard?: ContactVisitCard;
37844
+ }
37845
+ /** Элемент `ContactItem.addresses` (ответ GET). */
37846
+ type Address = NonNullable<ContactItem["addresses"]>[number];
37847
+ /** Элемент `ContactItem.communications` (ответ GET, полная модель). */
37848
+ type Communication = NonNullable<ContactItem["communications"]>[number];
37849
+ /** `communications[]` в теле `POST`/`PUT` контакта: без read-only `checkDate`; `checkState` опционален (SDK подставляет `Unchecked`). */
37850
+ type CommunicationForCreateOrUpdate = Omit<Communication, "checkDate">;
37851
+ /** Элемент `ContactItem.dates`. */
37852
+ type MemorableDate = NonNullable<ContactItem["dates"]>[number];
37853
+ /** `ContactItem.rating`. */
37854
+ type Rating = NonNullable<ContactItem["rating"]>;
37855
+ /** `ContactItem.visitCard` (3 слота отображения). */
37856
+ type ContactVisitCard = NonNullable<ContactItem["visitCard"]>;
37857
+ /** Элемент `ContactVisitCard.fields`. */
37858
+ type ContactVisitCardField = NonNullable<NonNullable<ContactVisitCard["fields"]>[number]>;
37859
+ /** `ContactItem.personalInfo`. */
37860
+ type ContactPersonalInfo = NonNullable<ContactItem["personalInfo"]>;
37861
+ /** `ContactItem.profileType`. */
37862
+ type ProfileType = NonNullable<ContactItem["profileType"]>;
37863
+ /** `ContactItem.registerInfo`. */
37864
+ type RegisterInfo = NonNullable<ContactItem["registerInfo"]>;
37865
+ type Gender = NonNullable<ContactItem["gender"]>;
37866
+ type CommunicationType = NonNullable<Communication["type"]>;
37867
+ declare const GenderValues: {
37868
+ readonly Unknown: "UnknownGender";
37869
+ readonly Male: "Male";
37870
+ readonly Female: "Female";
37871
+ readonly Other: "OtherGender";
37872
+ };
37873
+ declare const CommunicationTypeValues: {
37874
+ readonly Unknown: "UnknownCommunicationType";
37875
+ readonly Phone: "Phone";
37876
+ readonly Sms: "Sms";
37877
+ readonly Email: "Email";
37878
+ readonly WebSite: "WebSite";
37879
+ readonly Telegram: "Telegram";
37880
+ readonly WhatsApp: "WhatsApp";
37881
+ readonly Viber: "Viber";
37882
+ readonly Facebook: "Facebook";
37883
+ readonly Instagram: "Instagram";
37884
+ readonly Vkontakte: "Vkontakte";
37885
+ readonly Odnoklassniki: "Odnoklassniki";
37886
+ readonly Skype: "Skype";
37887
+ readonly Youtube: "Youtube";
37888
+ readonly Twitter: "Twitter";
37889
+ readonly LinkedIn: "LinkedIn";
37890
+ readonly Max: "Max";
37891
+ readonly Other: "Other";
37892
+ };
37893
+ declare const ProfileTypeValues: {
37894
+ readonly Unknown: "UnknownProfile";
37895
+ readonly None: "None";
37896
+ readonly MyProfile: "MyProfile";
37897
+ readonly AnyProfile: "AnyProfile";
37898
+ readonly CopyProfile: "CopyProfile";
37899
+ };
37900
+ type SendCommunicationCodeReq = SendCommunicationCodeReqDto;
37901
+ type SendCommunicationCodeResp = SendCommunicationCodeRespDto;
37902
+ type VerifyCommunicationCodeReq = VerifyCommunicationCodeReqDto;
37903
+ type VerifyCommunicationCodeResp = VerifyCommunicationCodeRespDto;
37904
+ type ActivityStatus = ActivityStatusDto;
37905
+ type ContactProperties = ContactPropertiesDto;
37906
+ type UpdateContactPropertiesResp = UpdateContactPropertiesRespDto;
37907
+ type UpdateMasterInfoReq = UpdateMasterInfoReqDto;
37908
+ type FeedbackOptions = FeedbackOptionsDto;
37909
+ type PersonalReminder = PersonalReminderDto;
37910
+
37911
+ type GroupStatus = GroupStatusRead;
37912
+ type UpdateItemAccountsReq = UpdateItemAccountsReqDto;
37913
+ type UpdateItemGroupsReq = UpdateItemGroupsReqDto;
37914
+ type UpdatePersonalListOrderReq = UpdatePersonalListOrderReqDto;
37915
+ type UpdatePersonalListOrderResp = UpdatePersonalListOrderRespDto;
37916
+ /**
37917
+ * Тело `POST`/`PUT` **`/api/v1/contacts`** (обычный контакт).
37918
+ * `communications` — {@link CommunicationForCreateOrUpdate} (без read-only `checkDate`).
37919
+ */
37920
+ type ContactItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<TorrowItemFromDto<ContactItemDto>>, "communications"> & {
37921
+ communications?: CommunicationForCreateOrUpdate[] | null;
37922
+ };
37923
+
37924
+ type ContextItem = TorrowItemFromDto<ContextItemDto>;
37925
+ type ContextItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ContextItem>;
37926
+ /** Частичное изменение: name/image — общие поля; color/description заменяются целиком. Остальные аспекты имеют отдельные методы. */
37927
+ type ContextItemPatch = TorrowItemPatchFields & {
37928
+ /** Цвет #RRGGBB; пропуск сохраняет текущий; null/empty не поддерживаются сервером. */
37929
+ color?: string;
37930
+ /** Описание; null либо empty очищает содержимое, пропуск сохраняет. */
37931
+ description?: string | null;
37932
+ };
37933
+
37934
+ type CalendarItem = TorrowItemFromDto<CalendarItemDto>;
37935
+ type CalendarItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CalendarItem>;
37936
+ /** Полный интервал исключения календаря; существующие интервалы сохраняют свой rid. */
37937
+ interface CalendarItemPatchTimeRange {
37938
+ /** Идентификатор вложенного интервала (24 hex); для нового интервала используйте generateRid(). */
37939
+ rid: string;
37940
+ /** Начало интервала в Date SDK; в запросе сериализуется в ISO UTC. */
37941
+ begin: Date;
37942
+ /** Конец интервала в Date SDK; предметный порядок границ проверяет сервер. */
37943
+ end: Date;
37944
+ /** Подпись интервала; null/пропуск не создаёт текстовую подпись. */
37945
+ name?: string | null;
37946
+ }
37947
+ /** Полная замена исключений; пропущенные внутри структуры списки не объединяются со снимком. */
37948
+ interface CalendarItemPatchScheduleRangeExceptions {
37949
+ /** Список заменённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
37950
+ replacedTimeRanges?: CalendarItemPatchTimeRange[] | null;
37951
+ /** Список исключённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
37952
+ excludedTimeRanges?: CalendarItemPatchTimeRange[] | null;
37953
+ }
37954
+ /** Частичное изменение календаря; общие name/image описаны в TorrowItemPatchFields. */
37955
+ interface CalendarItemPatch extends TorrowItemPatchFields {
37956
+ /** Описание; null или пустая строка очищает содержимое, пропуск сохраняет. */
37957
+ description?: string | null;
37958
+ /** Индекс вида int32; null очищает, 0 является реальным значением (ACK может нормализовать его в null). */
37959
+ calendarViewIndex?: number | null;
37960
+ /** Полная замена структуры исключений; null снимает структуру, {} очищает её списки. */
37961
+ scheduleRangeExceptions?: CalendarItemPatchScheduleRangeExceptions | null;
37962
+ }
37963
+
37964
+ /** Цена выбранной карточки: optional settings без null; элементы цены и расписания сохраняются. */
37965
+ type ItemPriceInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["PriceInfo"]>, "settings"> & {
37966
+ /** Ценовые записи; серверный null удаляет ключ, явный [] сохраняет его. */
37967
+ settings?: NonNullable<OpenApiSchemas["PriceInfo"]["settings"]>;
37968
+ };
37969
+
37970
+ /** Редактируемые денежные поля общей схемы PriceProperties: priceWithoutDiscount — исходная цена, discount — скидка, salePrice — итоговая, currencyCode — валюта, prepayment — предоплата, expences — расходы, takePrice — выручка, taxRate/taxAmount — налог. Значения наследуются из OpenAPI; SDK ничего не вычисляет. paymentProviderPropertiesList исключён: API игнорирует его в обоих направлениях. */
37971
+ type ItemPricePatchProperties = Omit<NonNullable<NonNullable<NonNullable<ServiceItemApiDto["priceInfo"]>["settings"]>[number]["priceProperties"]>, "paymentProviderPropertiesList">;
37972
+ /** Одна цена с собственным расписанием; запись заменяется целиком при priceInfo patch. */
37973
+ interface ItemPricePatchSetting {
37974
+ /** Цена данной записи. Чтобы удалить цену, удалите всю запись из settings. */
37975
+ priceProperties: ItemPricePatchProperties;
37976
+ /** Расписание действия данной цены; null либо отсутствие означает отсутствие ограничения этой структуры. */
37977
+ schedule?: NonNullable<ServiceItemApiDto["schedule"]> | null;
37978
+ }
37979
+ /** Полное редактируемое представление цен; настройки и их расписания заменяются целиком. */
37980
+ interface ItemPricePatchInfo {
37981
+ /** Упорядоченные ценовые записи; [] снимает настройки. Каждая запись содержит цену. */
37982
+ settings: ItemPricePatchSetting[];
37983
+ }
37984
+ /** Полная замена ценовой области; отдельные записи меняются передачей нового списка settings. */
37985
+ interface ItemPricePatchFields {
37986
+ /** Полная замена всех ценовых записей; null очищает всю область. */
37987
+ priceInfo?: ItemPricePatchInfo | null;
37988
+ }
37989
+
37990
+ /** Внутренний wire-снимок события для patch; выбранные nullable поля не подготавливаются до PUT. */
37991
+ type CaseItemWire = NormalizedPublicity<CaseItemDto>;
37992
+ type CaseItem = TorrowItemFromDto<Omit<CaseItemDto, "personalInfo" | "priceInfo"> & {
37993
+ /** Персональные сведения с предметными ресурсами билета и оплаты. */
37994
+ personalInfo?: CasePersonalInfoRead;
37995
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
37996
+ priceInfo?: ItemPriceInfoRead;
37997
+ }>;
37998
+ /** Частичное изменение конфигурации события. Общие name/image — {@link TorrowItemPatchFields}; полная замена ценовой области — {@link ItemPricePatchFields}. Пропуск сохраняет поле, вложенные значения заменяются целиком. Состояние/участие/бронь изменяются отдельными операциями. */
37999
+ type CaseItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38000
+ /** Начало события; Date, null снимает дату; календарную допустимость проверяет сервер. */
38001
+ beginDate?: Date | null;
38002
+ /** Окончание события; Date, null снимает дату. */
38003
+ endDate?: Date | null;
38004
+ /** Описание без trim; null/пустая строка очищают текст. */
38005
+ description?: string | null;
38006
+ /** Идентификатор места; непустая строка, null снимает ссылку. */
38007
+ placeId?: string | null;
38008
+ /** Текст места; null/пустая строка очищают текст. */
38009
+ place?: string | null;
38010
+ /** Вид планирования, кроме UnknownTimeType; ограничения перехода проверяет сервер. */
38011
+ caseType?: Exclude<NonNullable<CaseItem["caseType"]>, "UnknownTimeType">;
38012
+ /** Полная замена расписания; null снимает расписание, не пересчитывая повторения в SDK. */
38013
+ schedule?: CaseItem["schedule"] | null;
38014
+ /** Окно открытия регистрации в секундах; int32/null, null снимает ограничение. */
38015
+ registrationOpen?: number | null;
38016
+ /** Окно закрытия регистрации в секундах; int32/null, null снимает ограничение. */
38017
+ registrationClose?: number | null;
38018
+ /** Визитка события целиком; null запрещён, поля не нормализуются как Contact. */
38019
+ visitCard?: CaseItem["visitCard"];
38020
+ /** Срок удержания брони в секундах; int32/null, null снимает значение. */
38021
+ bookingDuration?: number | null;
38022
+ /** Максимальная вместимость; int32/null, ноль сохраняется. */
38023
+ maxConsumerQuantity?: number | null;
38024
+ /** Дополнительно зарезервированные вручную места; int32/null, отдельно от consumersCount. */
38025
+ bookingConsumerQuantity?: number | null;
38026
+ /** Процент загрузки исполнителя; конечное число/null, предметные лимиты проверяет сервер. */
38027
+ executorUsagePercent?: number | null;
38028
+ /** Признак доступности ресурсов; Unknown — серверный sentinel отсутствия; null запрещён. */
38029
+ availableResources?: CaseItem["availableResources"];
38030
+ /** Необходимость одобрения; null снимает настройку, false сохраняется. */
38031
+ needApproval?: boolean | null;
38032
+ /** Генерация одиночных событий; null снимает настройку без удаления пропущенного расписания. */
38033
+ createSingleCases?: boolean | null;
38034
+ /** Полная замена правил регистрации; null снимает правила. */
38035
+ checkinPermission?: CaseItem["checkinPermission"] | null;
38036
+ /** Скрытие события; null снимает настройку, false сохраняется. */
38037
+ hidden?: boolean | null;
38038
+ /** Приложения целиком; []/null очищают список. */
38039
+ appendixList?: CaseItem["appendixList"];
38040
+ /** Полная замена требований к участнику; null снимает требования. */
38041
+ participateFieldRequirements?: CaseItem["participateFieldRequirements"] | null;
38042
+ /** Группы ресурсов целиком; []/null очищают список, бронирование не выполняется SDK. */
38043
+ resourceGroupList?: CaseItem["resourceGroupList"];
38044
+ /** Приоритет обработки; конечное число/null, null снимает значение. */
38045
+ priority?: number | null;
38046
+ /** Идентификатор группы клиентов; непустая строка, null снимает ссылку. */
38047
+ clientGroupId?: string | null;
38048
+ /** Автоматизации целиком; []/null очищают список, исполнение остаётся серверу. */
38049
+ caseActionList?: CaseItem["caseActionList"];
38050
+ /** Правила начислений лояльности целиком; []/null очищают список. */
38051
+ loyaltyTransactionPropertiesList?: CaseItem["loyaltyTransactionPropertiesList"];
38052
+ };
38053
+ type CreateCaseReq = NormalizedPublicity<CreateCaseReqDto>;
38054
+ type AvailabilityTime = AvailabilityTimeDto;
38055
+ type CaseParticipantType = CaseParticipantTypeDto;
38056
+ /**
38057
+ * Участник кейса. В сгенерированных типах только **`loyaltyCardId`**.
38058
+ * Legacy `loyalityCardId` остаётся в `docs/torrow-swagger.json` (wire для старых клиентов),
38059
+ * но вырезается обёрткой codegen (`scripts/openapi-codegen.mjs` → `stripLegacyWireAliases`).
38060
+ * Сервер игнорирует опечатку при записи; в JSON ответов поле ещё может прийти — не использовать.
38061
+ * Проверка против живого API — отдельно (integration / ручные тесты).
38062
+ */
38063
+ type CaseParticipant = CaseParticipantDto;
38064
+ type CaseParticipantView = CaseParticipantViewRead;
38065
+ type CaseParticipantFields = CaseParticipantFieldsDto;
38066
+ type GetCaseParticipationCountResp = GetCaseParticipationCountRespDto;
38067
+ type CheckInReq = CheckInReqDto;
38068
+ type CheckInProps = CheckInPropsDto;
38069
+ type BookResourcesForMeReq = BookResourcesForMeReqDto;
38070
+ type BookResourcesForOthersReq = BookResourcesForOthersReqDto;
38071
+ type ChangeMoneyReceiveReq = ChangeMoneyReceiveReqDto;
38072
+ type ApproveCaseParticipationReq = ApproveCaseParticipationReqDto;
38073
+ type CancelCaseParticipationReq = CancelCaseParticipationReqDto;
38074
+ type PatchCaseReq = PatchCaseReqDto;
38075
+ type CaseState = CaseItem["caseState"];
38076
+ type CaseType = CaseItem["caseType"];
38077
+ declare const CaseStateValues: {
38078
+ readonly Unknown: "UnknownCaseState";
38079
+ readonly Verifying: "Verifying";
38080
+ readonly Waiting: "Waiting";
38081
+ readonly Processing: "Processing";
38082
+ readonly Preparing: "Preparing";
38083
+ readonly Completed: "Completed";
38084
+ readonly Closed: "Closed";
38085
+ readonly Rejected: "Rejected";
38086
+ readonly Canceled: "Canceled";
38087
+ readonly TimeControlled: "TimeControlled";
38088
+ readonly TaskNotCompleted: "TaskNotCompleted";
38089
+ readonly TaskCompleted: "TaskCompleted";
38090
+ };
38091
+ declare const CaseTypeValues: {
38092
+ readonly Unknown: "UnknownTimeType";
38093
+ readonly Time: "Time";
38094
+ readonly RepeatedTime: "RepeatedTime";
38095
+ readonly Today: "Today";
38096
+ readonly Week: "Week";
38097
+ readonly Later: "Later";
38098
+ readonly Date: "Date";
38099
+ readonly State: "State";
38100
+ };
38101
+ type CaseItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<CaseItemDto>>;
38102
+
38103
+ /** Общий query участников для loyalty cards / loyalty systems (дубли не тащить в два `types.ts`). */
38104
+ type LoyaltyParticipantsQuery = {
38105
+ participantStateList?: ParticipantState[] | null;
38106
+ participantTypeList?: ParticipantType[] | null;
38107
+ take?: number | null;
38108
+ skip?: number | null;
38109
+ lmFrom?: Date | null;
38110
+ lmTo?: Date | null;
38111
+ cdFrom?: Date | null;
38112
+ cdTo?: Date | null;
38113
+ includeDeleted?: boolean | null;
38114
+ sort?: ObjectSortCondition | null;
38115
+ };
38116
+
38117
+ type LoyaltyCardItem = TorrowItemFromDto<LoyaltyCardItemDto>;
38118
+ type CreateLoyaltyCardSubscriptionReq = CreateLoyaltyCardSubscriptionReqDto;
38119
+ type LoyaltyCardSubscription = LoyaltyCardSubscriptionDto;
38120
+ type LoyaltyCardItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltyCardItem>;
38121
+
38122
+ type LoyaltyTransactionsQuery = {
38123
+ state?: AccountingTransactionState | null;
38124
+ transactionDateFrom?: Date | null;
38125
+ transactionDateTo?: Date | null;
38126
+ take?: number | null;
38127
+ skip?: number | null;
38128
+ lmFrom?: Date | null;
38129
+ lmTo?: Date | null;
38130
+ cdFrom?: Date | null;
38131
+ cdTo?: Date | null;
38132
+ includeDeleted?: boolean | null;
38133
+ sort?: ObjectSortCondition | null;
38134
+ };
38135
+
38136
+ /** Поля программы из DTO; только три array-only patch-контейнера исключают null, сохраняя optional-модификаторы. */
38137
+ type LoyaltySystemItemReadFields = {
38138
+ [K in keyof LoyaltySystemItemDto]: K extends "referralProgramIds" | "beginTransactionValues" | "accountingProductNames" ? Exclude<LoyaltySystemItemDto[K], null> : LoyaltySystemItemDto[K];
38139
+ };
38140
+ /**
38141
+ * Программа лояльности: referralProgramIds — связанные реферальные программы,
38142
+ * beginTransactionValues — значения будущего выпуска, accountingProductNames — имена учётных продуктов.
38143
+ * Эти списки исключают null, сохраняя optional; остальные поля и элементы наследуются из DTO.
38144
+ */
38145
+ type LoyaltySystemItem = TorrowItemFromDto<LoyaltySystemItemReadFields>;
38146
+ type CreateLoyaltyCardReq = CreateLoyaltyCardReqDto;
38147
+ type SearchLoyaltyCardsReq = SearchLoyaltyCardsReqDto;
38148
+ type LoyaltyCardFilterCondition = LoyaltyCardFilterConditionDto;
38149
+ type LoyaltyCardSortCondition = LoyaltyCardSortConditionDto;
38150
+ type GetLoyaltySystemsStatisticsReq = GetLoyaltySystemsStatisticsReqDto;
38151
+ type GetLoyaltySystemsStatisticsResp = GetLoyaltySystemsStatisticsRespDto;
38152
+ type LoyaltySystemsStatisticsResp = LoyaltySystemsStatisticsRespDto;
38153
+ type OperationType = OperationTypeDto;
38154
+ type ItemSortCondition = ItemSortConditionDto;
38155
+ /** Полная запись программы сохраняет исходные nullable списки DTO; ограничения частичного patch не переносятся на CRUD. */
38156
+ type LoyaltySystemItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<LoyaltySystemItemDto>>;
38157
+
38158
+ type LoyaltyCardIssueType = NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>;
38159
+ type LoyaltyCardUpdateKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateKeyInformation"]>;
38160
+ type LoyaltyCardUpdateNonKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateNonKeyInformation"]>;
38161
+ declare const LoyaltyCardIssueTypeValues: {
38162
+ readonly Unknown: "UnknownLoyaltyCardIssueType";
38163
+ readonly Manual: "Manual";
38164
+ readonly AutoActive: "AutoActive";
38165
+ readonly AutoIssued: "AutoIssued";
38166
+ };
38167
+ declare const LoyaltyCardUpdateKeyInformationValues: {
38168
+ readonly Unknown: "UnknownLoyaltyCardUpdateKeyInformation";
38169
+ readonly NonKeyDisallowed: "NonKeyDisallowed";
38170
+ readonly NonKeyAllowed: "NonKeyAllowed";
38171
+ };
38172
+ declare const LoyaltyCardUpdateNonKeyInformationValues: {
38173
+ readonly Unknown: "UnknownLoyaltyCardUpdateNonKeyInformation";
38174
+ readonly KeyDisallowed: "KeyDisallowed";
38175
+ readonly KeyAllowed: "KeyAllowed";
38176
+ };
38177
+ /** OpenAPI `LoyaltyCardSortCondition` — сортировка поиска карт в программе. */
38178
+ declare const LoyaltyCardSortConditionValues: {
38179
+ readonly SequenceCardNumberAsc: "SequenceCardNumberAsc";
38180
+ readonly SequenceCardNumberDesc: "SequenceCardNumberDesc";
38181
+ readonly LoyaltyCardStateAsc: "LoyaltyCardStateAsc";
38182
+ readonly LoyaltyCardStateDesc: "LoyaltyCardStateDesc";
38183
+ readonly SequenceCardNumberAscLoyaltyCardStateAsc: "SequenceCardNumberAscLoyaltyCardStateAsc";
38184
+ readonly SequenceCardNumberDescLoyaltyCardStateAsc: "SequenceCardNumberDescLoyaltyCardStateAsc";
38185
+ readonly SequenceCardNumberAscLoyaltyCardStateDesc: "SequenceCardNumberAscLoyaltyCardStateDesc";
38186
+ readonly SequenceCardNumberDescLoyaltyCardStateDesc: "SequenceCardNumberDescLoyaltyCardStateDesc";
38187
+ readonly LoyaltyCardStateAscSequenceCardNumberAsc: "LoyaltyCardStateAscSequenceCardNumberAsc";
38188
+ readonly LoyaltyCardStateAscSequenceCardNumberDesc: "LoyaltyCardStateAscSequenceCardNumberDesc";
38189
+ readonly LoyaltyCardStateDescSequenceCardNumberAsc: "LoyaltyCardStateDescSequenceCardNumberAsc";
38190
+ readonly LoyaltyCardStateDescSequenceCardNumberDesc: "LoyaltyCardStateDescSequenceCardNumberDesc";
38191
+ };
38192
+ type LoyaltyGroupListQuery = {
38193
+ itemType?: TorrowObjectType | null;
38194
+ minParticipantType?: ParticipantType | null;
38195
+ operationType?: OperationType | null;
38196
+ recursionDepth?: number | null;
38197
+ take?: number | null;
38198
+ skip?: number | null;
38199
+ lmfrom?: Date | null;
38200
+ lmto?: Date | null;
38201
+ includeDeleted?: boolean | null;
38202
+ sort?: ItemSortCondition | null;
38203
+ };
38204
+ /** Частичное изменение настроек программы; общие name/image сохраняют контракт TorrowItemPatchFields. */
38205
+ interface LoyaltySystemItemPatch extends TorrowItemPatchFields {
38206
+ /** Описание программы; null очищает. */
38207
+ description?: string | null;
38208
+ /** Ссылка на визитку; null снимает связь. */
38209
+ businessCardId?: string | null;
38210
+ /** Правило выпуска будущих карт; Unknown не принимается. */
38211
+ loyaltyCardIssueType?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>, "UnknownLoyaltyCardIssueType">;
38212
+ /** Доступ к выпускаемым картам; это не публичность самого item. */
38213
+ loyaltyCardAnyoneAccess?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardAnyoneAccess"]>, "UnknownAnyoneAccess">;
38214
+ /** Политика изменения ключевой информации карт. */
38215
+ loyaltyCardUpdateKeyInformation?: Exclude<LoyaltyCardUpdateKeyInformation, "UnknownLoyaltyCardUpdateKeyInformation">;
38216
+ /** Политика изменения неключевой информации карт. */
38217
+ loyaltyCardUpdateNonKeyInformation?: Exclude<LoyaltyCardUpdateNonKeyInformation, "UnknownLoyaltyCardUpdateNonKeyInformation">;
38218
+ /** Срок действия будущей карты в днях (int32); 0 — значение, null очищает. */
38219
+ loyaltyCardUsagePeriod?: number | null;
38220
+ /** Начало программы; null снимает ограничение. */
38221
+ startDate?: Date | null;
38222
+ /** Окончание программы; null снимает ограничение. */
38223
+ expiredDate?: Date | null;
38224
+ /** Полная замена требований к контакту при выпуске; null очищает. */
38225
+ contactInformationFieldsRequirements?: NonNullable<LoyaltySystemItem["contactInformationFieldsRequirements"]> | null;
38226
+ /** Полная замена ссылок на реферальные программы; [] очищает. */
38227
+ referralProgramIds?: string[];
38228
+ /** Начальные значения будущего выпуска; существующие балансы не меняются, [] очищает. */
38229
+ beginTransactionValues?: NonNullable<LoyaltySystemItem["beginTransactionValues"]>;
38230
+ /** Полная конфигурация стартового абонемента будущих карт; null очищает. */
38231
+ initialSubscription?: LoyaltySystemInitialSubscriptionPatch | null;
38232
+ /** Полная замена имён учётных продуктов; [] очищает. */
38233
+ accountingProductNames?: NonNullable<LoyaltySystemItem["accountingProductNames"]>;
38234
+ }
38235
+ /**
38236
+ * Конфигурация будущего стартового абонемента: name — название, usagePeriod — срок в днях,
38237
+ * transactionValues — начальные значения. Наследует эти атрибуты InitialSubscription;
38238
+ * image ограничено ссылкой файла, URL/служебные метаданные не редактируются.
38239
+ */
38240
+ type LoyaltySystemInitialSubscriptionPatch = Omit<NonNullable<LoyaltySystemItem["initialSubscription"]>, "image"> & {
38241
+ /** Загруженный файл стартового абонемента; null снимает изображение. */
38242
+ image?: TorrowItemPatchImage | null;
38243
+ };
38244
+ /** Полное обновление программы: numeratorInfo доступно только при создании и чтении. */
38245
+ type LoyaltySystemItemForUpdate = Omit<LoyaltySystemItemForCreateOrUpdate, "numeratorInfo">;
38246
+
38247
+ /** Предметные значения; версия услуги передаётся отдельно. */
38248
+ type ServiceImplicitTagParams = {
38249
+ /** Пользовательское название заказа для отображения в приложении; не меняет серверное имя создаваемого заказа. */
38250
+ orderName?: string;
38251
+ /** Часовой пояс отображения услуги, например Europe/Moscow. */
38252
+ timeZone?: string;
38253
+ /** За сколько минут до начала запрещена отмена участия. */
38254
+ disableCancelMyParticipationBeforeMinutes?: number;
38255
+ /** За сколько минут до начала запрещён перенос заказа. */
38256
+ disableUpdateOrderTimeBeforeMinutes?: number;
38257
+ /** Сообщение пользователю при недоступной записи. */
38258
+ unavailableBookingMessage?: string;
38259
+ /** Название поля со скидкой в процентах. */
38260
+ discountPercentageFieldName?: string;
38261
+ /** Интервал между событиями в секундах. */
38262
+ marginTimeSec?: number;
38263
+ /** Задержка автоматического подключения уведомлений в секундах. */
38264
+ autoStartNotificationDelaySeconds?: number;
38265
+ /**
38266
+ * Скрывает UI подключения уведомлений Telegram и Max через точный тег `HideMessengerNotifications`.
38267
+ * BehaviorSettings API также читает точный legacy alias; в его состоянии флаг всегда boolean.
38268
+ */
38269
+ hideMessengerConnectUi?: boolean;
38270
+ /** Полный набор соглашений; пустой массив очищает набор. */
38271
+ agreementItems?: {
38272
+ /** Положительный уникальный номер соглашения. */
38273
+ index: number;
38274
+ /** Текст соглашения; хотя бы text или link должны быть заданы. */
38275
+ text?: string;
38276
+ /** Ссылка соглашения; кодирование хранения выполняет SDK. */
38277
+ link?: string;
38278
+ }[];
38279
+ /** Таймаут перехода после оплаты в секундах. */
38280
+ paymentRedirectTimeoutSec?: number;
38281
+ };
38282
+ /** Минимальная структура поведения ресурса (сейчас: только margin between events). */
38283
+ type ResourceBehaviorSettings = {
38284
+ marginTimeSec?: number;
38285
+ /**
38286
+ * Идентификатор TTLock-замка в формате тега `<lockNumber>:lockId`.
38287
+ */
38288
+ lockId?: number;
38289
+ };
38290
+
38291
+ /** Причина неполного предметного чтения конкретной настройки. */
38292
+ declare enum ServiceBehaviorSettingsIssueReason {
38293
+ /** Есть некорректное значение; поле исключено из предметного снимка. */
38294
+ InvalidValue = "InvalidValue",
38295
+ /** Есть противоречивые значения; порядок не определяет результат. */
38296
+ AmbiguousValue = "AmbiguousValue"
38297
+ }
38298
+ /** Диагностика настройки без раскрытия внутреннего представления. */
38299
+ interface ServiceBehaviorSettingsIssue {
38300
+ /** Поле, значение которого не может быть достоверно прочитано. */
38301
+ field: keyof ServiceBehaviorSettings;
38302
+ /** Некорректное значение либо несколько противоречивых значений. */
38303
+ reason: ServiceBehaviorSettingsIssueReason;
38304
+ }
38305
+ /** Проверенное предметное состояние услуги. */
38306
+ interface ServiceBehaviorSettingsState {
38307
+ /** ID услуги, для которой выполнено чтение. */
38308
+ serviceId: string;
38309
+ /** Положительная int32 meta.version всей услуги, не отдельный счётчик настроек. */
38310
+ version: number;
38311
+ /** Прочитанные значения; поля с issues не являются полным снимком. */
38312
+ settings: ServiceBehaviorSettings;
38313
+ /** Проблемы предметного чтения; пустой массив означает полный снимок настроек. */
38314
+ issues: ServiceBehaviorSettingsIssue[];
38315
+ }
38316
+ /** Результат изменения; поля состояния имеют смысл из ServiceBehaviorSettingsState. */
38317
+ interface ServiceBehaviorSettingsUpdateResult extends ServiceBehaviorSettingsState {
38318
+ /** Был ли PUT; settings описывают ожидаемый результат, без автоматического readback. */
38319
+ changed: boolean;
38320
+ }
38321
+ /** Управление записью BehaviorSettings; проверку версии выбирает потребитель. */
38322
+ interface ServiceBehaviorSettingsUpdateOptions {
38323
+ /** Ожидаемая meta.version: 1..2147483647. При наличии включает проверку указанной версии. */
38324
+ versionToCheck?: number;
38325
+ /** true включает CAS по версии внутреннего GET, если versionToCheck не задан. По умолчанию CAS выключен. */
38326
+ checkVersion?: true;
38327
+ /** true (по умолчанию) сохраняет пропущенные поля; false полностью заменяет настройки. */
38328
+ mergeParameters?: boolean;
38329
+ /** Выбранный профиль только для внутреннего GET; не предоставляет право записи. */
38330
+ profileId?: string | null;
38331
+ /** Гостевой контекст только для GET; не Bearer и не право записи. */
38332
+ securityToken?: string | null;
38333
+ /** Создание объявления при PUT; отсутствие/null означает false. */
38334
+ isNeedAnnouncement?: boolean | null;
38335
+ /** Отмена чтения и записи; после отмены автоматических запросов нет. */
38336
+ signal?: AbortSignal;
38337
+ }
38338
+
38339
+ type ServiceItemApi = NormalizedPublicity<ServiceItemApiDto>;
38340
+ type ResourceGroup = NonNullable<ServiceItemApi["resourceGroupList"]>[number];
38341
+ type BookingProperties = NonNullable<ResourceGroup["bookingProperties"]>;
38342
+ type CreateOrderReq = CreateOrderReqDto;
38343
+ type OrderResp = OrderRespRead;
38344
+ type SearchServiceResourcesReq = SearchServiceResourcesReqDto;
38345
+ type SearchServiceResourcesResp = SearchServiceResourcesRespRead;
38346
+ type StepDescription = StepDescriptionDto;
38347
+ type SessionDurationProperties = SessionDurationPropertiesDto;
38348
+ type GetServiceWorkloadInfoRequest = GetServiceWorkloadInfoRequestDto;
38349
+ type GetServiceWorkloadInfoResp = GetServiceWorkloadInfoRespRead;
38350
+ type GetTimetableStatisticsRequest = GetTimetableStatisticsRequestDto;
38351
+ type TimetableStatisticsResp = TimetableStatisticsRespDto;
38352
+ type GetCheckInScheduleReq = GetCheckInScheduleReqDto;
38353
+ type GetCheckInScheduleResp = GetCheckInScheduleRespDto;
38354
+ type GetReCheckInScheduleReq = GetReCheckInScheduleReqDto;
38355
+ type UpdateOrderReq = UpdateOrderReqDto;
38356
+ type UpdateOrderInfoReq = UpdateOrderInfoReqDto;
38357
+ type ChangeOrderServiceReq = ChangeOrderServiceReqDto;
38358
+ /**
38359
+ * Публичная доменная структура для настройки поведения услуги.
38360
+ * Внутри SDK маппится в `service.tags`.
38361
+ * orderName задаёт название для отображения в приложении, не серверное имя создаваемого заказа.
38362
+ */
38363
+ type ServiceBehaviorSettings = ServiceImplicitTagParams;
38364
+
38365
+ /**
38366
+ * SDK-тип услуги: OpenAPI `ServiceItem` + удобный доменный слой.
38367
+ * `behaviorSettings` сериализуется/десериализуется через `tags` внутри SDK.
38368
+ */
38369
+ type ServiceItem = TorrowItemFromDto<Omit<ServiceItemApi, "priceInfo" | "executorIdList" | "resourceGroupList" | "appendixList" | "stepDescriptionList" | "caseActionList" | "loyaltyTransactionPropertiesList">> & {
38370
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
38371
+ priceInfo?: ItemPriceInfoRead;
38372
+ /** Профили исполнителей; серверный null удаляет optional-поле, явный [] сохраняется. */
38373
+ executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38374
+ /** Группы ресурсов; серверный null удаляет optional-поле, вложенные коллекции групп сохраняются. */
38375
+ resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38376
+ /** Приложения услуги; серверный null удаляет optional-поле, явный [] сохраняется. */
38377
+ appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38378
+ /** Шаги регистрации; серверный null удаляет optional-поле, параметры шагов не изменяются. */
38379
+ stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38380
+ /** Действия события; серверный null удаляет optional-поле, вложенные настройки не изменяются. */
38381
+ caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38382
+ /** Правила лояльности; серверный null удаляет optional-поле, вложенные транзакции сохраняются. */
38383
+ loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38384
+ /** Настройки поведения, декодированные из hash-tags услуги. */
38385
+ behaviorSettings?: ServiceBehaviorSettings;
38386
+ };
38387
+ type ServiceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<ServiceItemApi>> & {
38388
+ /** Настройки поведения, сериализуемые в hash-tags услуги. */
38389
+ behaviorSettings?: ServiceBehaviorSettings;
38390
+ };
38391
+ /** Полный update услуги: атрибуты create/update без numeratorInfo; meta сохраняет CAS-версию самого item, не персональной связи. Полный GET-снимок допускается структурно, runtime отбрасывает numeratorInfo. */
38392
+ type ServiceItemForUpdate = Omit<ServiceItemForCreateOrUpdate, "numeratorInfo"> & Pick<ServiceItem, "meta">;
38393
+ /** Частичное изменение услуги; name/image наследуют назначение {@link TorrowItemPatchFields}; priceInfo заменяет всю ценовую область согласно ItemPricePatchFields. Остальные поля ниже описывают полную замену выбранного значения. */
38394
+ type ServiceItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38395
+ /** Описание услуги; null/empty очищает, пропуск сохраняет. */
38396
+ description?: string | null;
38397
+ /** Идентификатор места оказания услуги; null снимает привязку. */
38398
+ placeId?: string | null;
38399
+ /** Текстовое описание места; null/empty очищает. */
38400
+ place?: string | null;
38401
+ /** Полное расписание; вложенные диапазоны заменяются целиком, null снимает структуру. */
38402
+ schedule?: NonNullable<ServiceItemApi["schedule"]> | null;
38403
+ /** Длительность бронирования в секундах; null снимает ограничение. */
38404
+ bookingDuration?: number | null;
38405
+ /** Числовой вид расписания; null снимает настройку. */
38406
+ timetableView?: number | null;
38407
+ /** Граница закрытия регистрации по wire-контракту; null снимает. */
38408
+ registrationClose?: number | null;
38409
+ /** Граница открытия регистрации по wire-контракту; null снимает. */
38410
+ registrationOpen?: number | null;
38411
+ /** Максимальное число клиентов; null снимает лимит. */
38412
+ maxConsumerQuantity?: number | null;
38413
+ /** Полная замена списка профилей исполнителей; [] очищает. */
38414
+ executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38415
+ /** Требование одобрения; false — значение, null снимает настройку. */
38416
+ needApproval?: boolean | null;
38417
+ /** Шаг сетки времени; null снимает настройку. */
38418
+ timeAlignment?: number | null;
38419
+ /** Лимит одновременно действующих заказов услуги; null снимает. */
38420
+ orderQuote?: number | null;
38421
+ /** Пауза между слотами в секундах; null снимает. */
38422
+ marginTime?: number | null;
38423
+ /** Доля использования исполнителя по wire-контракту; null снимает. */
38424
+ executorUsagePercent?: number | null;
38425
+ /** Опорная дата первой недели; Date сериализуется штатным SDK, null снимает. */
38426
+ firstWeekDate?: Date | null;
38427
+ /** Группа допустимых клиентов; null снимает привязку. */
38428
+ clientGroupId?: string | null;
38429
+ /** Полный список ресурсных групп; [] очищает, группы не сливаются по id. */
38430
+ resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38431
+ /** Полная структура запрашиваемых сведений участника; null снимает. */
38432
+ participateFieldRequirements?: NonNullable<ServiceItemApi["participateFieldRequirements"]> | null;
38433
+ /** Полный список приложений; [] очищает. */
38434
+ appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38435
+ /** Полная конфигурация длительности сессии; null снимает. */
38436
+ sessionDurationProperties?: NonNullable<ServiceItemApi["sessionDurationProperties"]> | null;
38437
+ /** Автоматический check-in всех связанных событий; false выключает, null не принимается. */
38438
+ checkInAllCases?: boolean;
38439
+ /** Полный список шагов регистрации; [] очищает. */
38440
+ stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38441
+ /** Подпись основной кнопки; null/empty снимает. */
38442
+ buttonName?: string | null;
38443
+ /** Полная конфигурация доступа и минимального интервала check-in; null снимает. */
38444
+ checkinPermission?: NonNullable<ServiceItemApi["checkinPermission"]> | null;
38445
+ /** Полный список автоматических действий события; [] очищает. */
38446
+ caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38447
+ /** Полный список правил лояльности; [] очищает, транзакции SDK не вычисляет. */
38448
+ loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38449
+ };
38450
+ type ServiceResourceStepUsageType = Extract<NonNullable<ResourceGroup["usageType"]>, "Specification" | "Rent" | "Sale">;
38451
+ interface AddServiceResourceGroupInput {
38452
+ key: string;
38453
+ groupId?: string;
38454
+ groupName: string;
38455
+ minResources?: number | null;
38456
+ maxResources?: number | null;
38457
+ maxTotalAmount?: number | null;
38458
+ quickFilterTags?: string[] | null;
38459
+ bookingProperties?: BookingProperties | null;
38460
+ }
38461
+ interface AddServiceResourceStepInput extends AddServiceResourceGroupInput {
38462
+ usageType: ServiceResourceStepUsageType;
38463
+ stepOrder?: number;
38464
+ description?: string | null;
38465
+ autoChoiceResource?: boolean;
38466
+ hiddenStep?: boolean;
38467
+ hideResourceDetail?: boolean;
38468
+ }
38469
+ type AddServicePaymentGroupInput = AddServiceResourceGroupInput;
38470
+ interface ServiceBuildResult {
38471
+ body: ServiceItemForCreateOrUpdate;
38472
+ resourceGroupIds: Record<string, string>;
38473
+ }
38474
+ type SessionDurationType = NonNullable<SessionDurationProperties["sessionDurationType"]>;
38475
+ type TimeSelectionType = NonNullable<SessionDurationProperties["timeSelectionType"]>;
38476
+ type StateManagementType = NonNullable<SessionDurationProperties["stateManagementType"]>;
38477
+ type SessionPrecisionType = NonNullable<SessionDurationProperties["sessionPrecisionType"]>;
38478
+ declare const SessionDurationTypeValues: {
38479
+ readonly Unknown: "UnknownSessionDurationType";
38480
+ readonly None: "SessionDurationNone";
38481
+ readonly Custom: "Custom";
38482
+ readonly Constant: "Constant";
38483
+ readonly Sum: "Sum";
38484
+ };
38485
+ declare const TimeSelectionTypeValues: {
38486
+ readonly Unknown: "UnknownTimeSelectionType";
38487
+ readonly None: "TimeSelectionNone";
38488
+ readonly Consumer: "Consumer";
38489
+ readonly Executor: "Executor";
38490
+ };
38491
+ declare const StateManagementTypeValues: {
38492
+ readonly Unknown: "UnknownStateManagementType";
38493
+ readonly Auto: "Auto";
38494
+ readonly Manual: "Manual";
38495
+ };
38496
+ declare const SessionPrecisionTypeValues: {
38497
+ readonly Unknown: "UnknownSessionPrecisionType";
38498
+ readonly None: "SessionPrecisionNone";
38499
+ readonly DateTime: "DateTime";
38500
+ readonly Date: "Date";
38501
+ };
38502
+
38503
+ /** Провайдер оплаты из OpenAPI; строковый ввод и неизвестный серверный sentinel сохраняются. */
38504
+ type PaymentProviderType = OpenApiSchemas["PaymentProviderType"];
38505
+ /** Именованные значения общего wire-контракта провайдера оплаты. */
38506
+ declare enum PaymentProviderTypeValues {
38507
+ /** Неизвестный провайдер серверного контракта. */
38508
+ Unknown = "UnknownPaymentProviderType",
38509
+ /** Наличный расчёт. */
38510
+ Cash = "Cash",
38511
+ /** Внешняя ссылка оплаты. */
38512
+ CustomLink = "CustomLink",
38513
+ /** Интеграция YooMoney. */
38514
+ YooMoney = "YooMoney",
38515
+ /** Интеграция Qiwi P2P. */
38516
+ QiwiP2P = "QiwiP2P",
38517
+ /** Серверная ветвь Qiwi B2B. */
38518
+ QiwiB2B = "QiwiB2B",
38519
+ /** Интеграция YooKassa. */
38520
+ YooKassa = "YooKassa",
38521
+ /** Интеграция Сбербанка. */
38522
+ Sberbank = "Sberbank",
38523
+ /** Интеграция Уралсиб. */
38524
+ Uralsib = "Uralsib",
38525
+ /** Интеграция Альфа-Банка. */
38526
+ Alfabank = "Alfabank",
38527
+ /** Интеграция RoboKassa. */
38528
+ RoboKassa = "RoboKassa",
38529
+ /** Интеграция PayKeeper. */
38530
+ PayKeeper = "PayKeeper",
38531
+ /** Серверная ветвь GateLine. */
38532
+ GateLine = "GateLine",
38533
+ /** Интеграция Tinkoff. */
38534
+ Tinkoff = "Tinkoff",
38535
+ /** Интеграция Prodamus. */
38536
+ Prodamus = "Prodamus",
38537
+ /** Тестовый провайдер. */
38538
+ Mock = "MockPaymentProvider"
38539
+ }
38540
+
38541
+ /** Вид условия использования ресурса из OpenAPI, включая неизвестный серверный sentinel. */
38542
+ type UsageConditionType = OpenApiSchemas["UsageConditionType"];
38543
+ /** Полный wire-набор для валидации patch и справочника; публичное подмножество задано отдельно. */
38544
+ declare enum UsageConditionTypeWireValues {
38545
+ /** Сервер не определил вид условия. */
38546
+ Unknown = "UnknownUsageConditionType",
38547
+ /** Условие использования отсутствует. */
38548
+ None = "None",
38549
+ /** Указанные ресурсы исключают использование текущего. */
38550
+ Exclusion = "Exclusion",
38551
+ /** Указанные ресурсы используются дополнительно к текущему. */
38552
+ Additional = "Additional"
38553
+ }
38554
+ /** Совместимый публичный набор: три прежних ключа с типами строковых литералов. */
38555
+ declare const UsageConditionTypeValues: {
38556
+ /** Условие использования отсутствует. */
38557
+ readonly None: "None";
38558
+ /** Исключающее условие использования. */
38559
+ readonly Exclusion: "Exclusion";
38560
+ /** Дополнительное условие использования. */
38561
+ readonly Additional: "Additional";
38562
+ };
38563
+
38564
+ /** Общий текст конфигурации оплаты; назначение совпадает с серверным PaymentParameters. */
38565
+ interface PaymentPatchText {
38566
+ /** Текст оплаты; null/empty снимает текстовую часть. */
38567
+ text?: string | null;
38568
+ /** Сообщение до оплаты; null/empty снимает его. */
38569
+ beforePayMessage?: string | null;
38570
+ /** Сообщение после оплаты; null/empty снимает его. */
38571
+ afterPayMessage?: string | null;
38572
+ }
38573
+ /** Предметные параметры выбранного провайдера. */
38574
+ type PaymentPatchParameters<TFields extends object = Record<never, never>> = PaymentPatchText & TFields;
38575
+ /** Общие атрибуты RBS банков; значения проверяет сервер/провайдер. */
38576
+ interface BankPatchFields {
38577
+ /** Имя пользователя интеграции банка. */
38578
+ username: string;
38579
+ /** Пароль интеграции; не выводить в диагностике. */
38580
+ password: string;
38581
+ /** Использование тестовой среды; false сохраняется без подстановки defaults SDK. */
38582
+ isTest?: boolean;
38583
+ }
38584
+ /** Атрибуты провайдера с URL и парой доступа. */
38585
+ interface PaykeeperPatchFields extends BankPatchFields {
38586
+ /** URL интеграции провайдера, передаётся без нормализации SDK. */
38587
+ url: string;
38588
+ }
38589
+ /** Настройки оплаты конкретного провайдера; numeratorId/waitForConfirmation наследуют общий wire-смысл. */
38590
+ interface PaymentPatchConfigurationBase<TProvider extends PaymentProviderType> {
38591
+ /** Серверный провайдер; строковый тип выводится из общего enum, сохраняя ввод литерала и связь с параметрами. */
38592
+ paymentProviderType: `${TProvider}`;
38593
+ /** Связанный нумератор оплаты; null снимает ссылку. */
38594
+ numeratorId?: string | null;
38595
+ /** Ожидать подтверждения; false не считается пропуском, null снимает значение. */
38596
+ waitForConfirmation?: boolean | null;
38597
+ }
38598
+ /** Обязательность параметров следует безусловным cast/ForString в серверном mapper. */
38599
+ type PaymentPatchConfiguration<TProvider extends PaymentProviderType, TParameters, TRequired extends boolean = false> = PaymentPatchConfigurationBase<TProvider> & (TRequired extends true ? {
38600
+ /** Полная структура параметров с технически обязательными строками; их действительность проверяет сервер. */
38601
+ parameters: TParameters;
38602
+ } : {
38603
+ /** Guarded серверная ветвь допускает отсутствие/null; переданный объект имеет собственные обязательные поля. */
38604
+ parameters?: TParameters | null;
38605
+ });
38606
+ /** Полиморфная конфигурация Resource payment patch; SDK не выполняет платежи и не проверяет credentials. */
38607
+ type ResourcePaymentPatchProperties = PaymentPatchConfiguration<PaymentProviderTypeValues.Cash, PaymentPatchParameters> | PaymentPatchConfiguration<PaymentProviderTypeValues.CustomLink, PaymentPatchParameters<{
38608
+ /** URL внешней формы оплаты. */ url: string;
38609
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooMoney, PaymentPatchParameters<{
38610
+ /** Идентификатор кошелька. */ accountId: string;
38611
+ /** Секрет проверки уведомлений; чувствительное значение. */ notificationSecret: string;
38612
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.QiwiP2P, PaymentPatchParameters<{
38613
+ /** Публичный ключ интеграции. */ publicKey: string;
38614
+ /** Закрытый ключ интеграции; чувствительное значение. */ privateKey: string;
38615
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooKassa, PaymentPatchParameters<{
38616
+ /** Идентификатор магазина. */ shopId: string;
38617
+ /** Секретный ключ магазина. */ secretKey: string;
38618
+ /** Серверное обозначение системы налогообложения. */ taxation: string;
38619
+ }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Sberbank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Alfabank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Uralsib, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.RoboKassa, PaymentPatchParameters<{
38620
+ /** Имя магазина. */ shopName: string;
38621
+ /** Первый пароль интеграции; чувствительное значение. */ password1: string;
38622
+ /** Второй пароль интеграции; чувствительное значение. */ password2: string;
38623
+ /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
38624
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.PayKeeper, PaymentPatchParameters<PaykeeperPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Prodamus, PaymentPatchParameters<{
38625
+ /** Секретный ключ интеграции. */ secretKey: string;
38626
+ /** URL формы оплаты. */ url: string;
38627
+ /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
38628
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Tinkoff, PaymentPatchParameters<{
38629
+ /** Терминал интеграции. */ terminal: string;
38630
+ /** Пароль терминала; чувствительное значение. */ password: string;
38631
+ /** Серверное обозначение системы налогообложения. */ taxation: string;
38632
+ /** Параметр распределения платежа; SDK не интерпретирует строку. */ split?: string;
38633
+ }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Mock, PaymentPatchParameters<{
38634
+ /** Базовый URL перенаправления тестового провайдера. */ redirectBaseUrl?: string;
38635
+ /** Тестовый код ошибки int32; wire-опечатка Responce сохранена. */ errorResponceCode?: number | null;
38636
+ /** Отложенное создание тестового платежа; Date SDK, null снимает дату. */ createAfter?: Date | null;
38637
+ }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Unknown | PaymentProviderTypeValues.QiwiB2B | PaymentProviderTypeValues.GateLine, PaymentPatchText>;
38638
+ /** Предметные параметры всех ветвей payment patch; paymentProviderType выбирает класс, text/beforePayMessage/afterPayMessage — общие сообщения, остальные атрибуты относятся к выбранному провайдеру в ResourcePaymentPatchProperties. */
38639
+ type ResourcePaymentPatchParameters = NonNullable<ResourcePaymentPatchProperties["parameters"]>;
38640
+
38641
+ type ResourceItemApi = NormalizedPublicity<ResourceItemApiDto>;
38642
+ type ServiceDescription = NonNullable<ResourceItemApi["serviceDescriptions"]>[number];
38643
+ type UsageCondition = NonNullable<ResourceItemApi["usageCondition"]>;
38644
+ /** Дополнительные и исключающие условия; отсутствие условия и неизвестный sentinel сюда не входят. */
38645
+ type ResourceUsageConditionType = Exclude<UsageConditionType, `${UsageConditionTypeWireValues.Unknown | UsageConditionTypeWireValues.None}`>;
38646
+ type WorkloadPeriod = WorkloadPeriodDto;
38647
+ type PickOrderReq = PickOrderReqDto;
38648
+ type PickOrderResp = PickOrderRespRead;
38649
+ type ReturnOrderReq = ReturnOrderReqDto;
38650
+ type ReturnOrderResp = ReturnOrderRespRead;
38651
+ type ResourceItem = TorrowItemFromDto<Omit<ResourceItemApi, "item" | "parentResource" | "priceInfo" | "serviceDescriptions" | "appendixList" | "loyaltyTransactionPropertiesList">> & {
38652
+ /** Связанный элемент с подготовленными общими read-полями; отсутствие элемента сохраняется. */
38653
+ item?: TorrowItem;
38654
+ /** Родительский ресурс с подготовленными общими read-полями; отсутствие родителя сохраняется. */
38655
+ parentResource?: TorrowItem;
38656
+ /** Цена карточки: optional settings без null; исходная обязательность родителя сохранена. */
38657
+ priceInfo?: ItemPriceInfoRead;
38658
+ /** Связи с услугами; серверный null удаляет ключ, [] сохраняется. Элементы не преобразуются. */
38659
+ serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
38660
+ /** Приложения; серверный null удаляет ключ, [] сохраняется. Даты и остальные поля элементов сохраняются. */
38661
+ appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
38662
+ /** Правила лояльности; серверный null удаляет ключ, вложенные transactionValues не нормализуются. */
38663
+ loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
38664
+ /** Настройки поведения, декодированные из hash-tags ресурса. */
38665
+ behaviorSettings?: ResourceBehaviorSettings;
38666
+ };
38667
+ type UsageType = ResourceItemApi["usageType"];
38668
+ declare const UsageTypeValues: {
38669
+ readonly Unknown: "UnknownUsageType";
38670
+ readonly Specification: "Specification";
38671
+ readonly Rent: "Rent";
38672
+ readonly Sale: "Sale";
38673
+ readonly Payment: "Payment";
38674
+ readonly Ticket: "Ticket";
38675
+ };
38676
+ type ResourceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<TorrowItemFromDto<ResourceItemApi>> & {
38677
+ /** Настройки поведения, сериализуемые в hash-tags ресурса. */
38678
+ behaviorSettings?: ResourceBehaviorSettings;
38679
+ };
38680
+ /** Подтверждённые обычные поля root Resource update; name/image наследуют общий контракт. */
38681
+ interface ResourceItemPatchFields extends TorrowItemPatchFields {
38682
+ /** Описание ресурса; null/empty очищает содержимое, пропуск сохраняет. */
38683
+ description?: string | null;
38684
+ /** Идентификатор связанного элемента; null снимает связь. Это не target ID самого patch. */
38685
+ itemId?: string | null;
38686
+ /** Идентификатор родительского ресурса; null снимает связь. */
38687
+ parentResourceId?: string | null;
38688
+ /** Идентификатор связанного расписания; null снимает связь. */
38689
+ timetableId?: string | null;
38690
+ /** Полная замена расписания с Date SDK; null снимает расписание. */
38691
+ schedule?: NonNullable<ResourceItemApi["schedule"]> | null;
38692
+ /** Серверный способ использования; UnknownUsageType нормализует сервер, create default не применяется. */
38693
+ usageType?: NonNullable<ResourceItemApi["usageType"]>;
38694
+ /** Полная замена связей с услугами; [] снимает список, предметные ограничения проверяет сервер. */
38695
+ serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
38696
+ /** Пользовательский код; null/empty очищает содержимое. */
38697
+ code?: string | null;
38698
+ /** Длительность/расчётная единица в секундах (int32); null снимает значение. */
38699
+ duration?: number | null;
38700
+ /** Полная замена количественных свойств, включая inventoryDate Date; null снимает структуру. */
38701
+ amountProperties?: NonNullable<ResourceItemApi["amountProperties"]> | null;
38702
+ /** Полная замена условий использования; null снимает структуру. */
38703
+ usageCondition?: NonNullable<ResourceItemApi["usageCondition"]> | null;
38704
+ /** Полная замена приложений с Date SDK; [] снимает список. */
38705
+ appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
38706
+ /** Полная замена конфигурации оплаты; null снимает её, платежи не выполняются. */
38707
+ paymentProperties?: ResourcePaymentPatchProperties | null;
38708
+ /** Полная замена настроек операций лояльности; [] снимает список, баланс не пересчитывается SDK. */
38709
+ loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
38710
+ }
38711
+ /** Частичное изменение ресурса с одной из взаимоисключающих форм цены ItemPricePatchFields. */
38712
+ type ResourceItemPatch = ResourceItemPatchFields & ItemPricePatchFields;
38713
+ interface ResourceServiceBindingOptions {
38714
+ usageAmount?: number | null;
38715
+ sortIndex?: number | null;
38716
+ }
38717
+ interface ResourceBuildResult {
38718
+ body: ResourceItemForCreateOrUpdate;
38719
+ }
38720
+
38721
+ /** Именованная read-модель ItemLink; wire DTO и входы записи сохраняют исходный контракт. */
38722
+ type ItemLinkRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemLink"]>, "tags"> & {
38723
+ /** Теги; серверный null означает отсутствие ключа. */
38724
+ tags?: string[];
38725
+ };
38726
+ /** Персональные сведения карточки: только два setter-списка исключают null. */
38727
+ type PersonalInfoRead = Omit<OpenApiSchemas["PersonalInfo"], "personalReminders" | "notificationWayList"> & {
38728
+ /** Напоминания; серверный null означает отсутствие ключа, явный [] сохраняется. */
38729
+ personalReminders?: NonNullable<OpenApiSchemas["PersonalInfo"]["personalReminders"]>;
38730
+ /** Способы уведомления; вложенные nullable списки элементов не изменяются. */
38731
+ notificationWayList?: NonNullable<OpenApiSchemas["PersonalInfo"]["notificationWayList"]>;
38732
+ };
38733
+ /** Именованная read-модель CasePersonalInfo; wire DTO и входы записи сохраняют исходный контракт. */
38734
+ type CasePersonalInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["CasePersonalInfo"]>, "ticketResource" | "paymentResource" | "personalReminders" | "notificationWayList"> & {
38735
+ /** Напоминания; серверный null означает отсутствие ключа, явный [] сохраняется. */
38736
+ personalReminders?: NonNullable<OpenApiSchemas["CasePersonalInfo"]["personalReminders"]>;
38737
+ /** Способы уведомления; вложенные nullable списки элементов не изменяются. */
38738
+ notificationWayList?: NonNullable<OpenApiSchemas["CasePersonalInfo"]["notificationWayList"]>;
38739
+ /** Предметные данные ticketResource с подготовленными вложенными карточками. */
38740
+ ticketResource?: ResourceItem;
38741
+ /** Предметные данные paymentResource с подготовленными вложенными карточками. */
38742
+ paymentResource?: ResourceItem;
38743
+ };
38744
+ /** Именованная read-модель NoteView; wire DTO и входы записи сохраняют исходный контракт. */
38745
+ type NoteViewRead = Omit<NormalizedPublicity<OpenApiSchemas["NoteView"]>, "itemLink" | "itemObject"> & {
38746
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38747
+ itemLink?: ItemLinkRead;
38748
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38749
+ itemObject?: NoteItem;
38750
+ };
38751
+ /** Именованная read-модель ContactView; wire DTO и входы записи сохраняют исходный контракт. */
38752
+ type ContactViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ContactView"]>, "itemLink" | "itemObject"> & {
38753
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38754
+ itemLink?: ItemLinkRead;
38755
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38756
+ itemObject?: ContactItem;
38757
+ };
38758
+ /** Именованная read-модель ContextView; wire DTO и входы записи сохраняют исходный контракт. */
38759
+ type ContextViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ContextView"]>, "itemLink" | "itemObject"> & {
38760
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38761
+ itemLink?: ItemLinkRead;
38762
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38763
+ itemObject?: ContextItem;
38764
+ };
38765
+ /** Именованная read-модель CalendarView; wire DTO и входы записи сохраняют исходный контракт. */
38766
+ type CalendarViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CalendarView"]>, "itemLink" | "itemObject"> & {
38767
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38768
+ itemLink?: ItemLinkRead;
38769
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38770
+ itemObject?: CalendarItem;
38771
+ };
38772
+ /** Именованная read-модель CaseView; wire DTO и входы записи сохраняют исходный контракт. */
38773
+ type CaseViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CaseView"]>, "itemLink" | "itemObject"> & {
38774
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38775
+ itemLink?: ItemLinkRead;
38776
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38777
+ itemObject?: CaseItem;
38778
+ };
38779
+ /** Именованная read-модель LoyaltyCardView; wire DTO и входы записи сохраняют исходный контракт. */
38780
+ type LoyaltyCardViewRead = Omit<NormalizedPublicity<OpenApiSchemas["LoyaltyCardView"]>, "itemLink" | "itemObject"> & {
38781
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38782
+ itemLink?: ItemLinkRead;
38783
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38784
+ itemObject?: LoyaltyCardItem;
38785
+ };
38786
+ /** Именованная read-модель LoyaltySystemView; wire DTO и входы записи сохраняют исходный контракт. */
38787
+ type LoyaltySystemViewRead = Omit<NormalizedPublicity<OpenApiSchemas["LoyaltySystemView"]>, "itemLink" | "itemObject"> & {
38788
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38789
+ itemLink?: ItemLinkRead;
38790
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38791
+ itemObject?: LoyaltySystemItem;
38792
+ };
38793
+ /** Именованная read-модель ServiceView; wire DTO и входы записи сохраняют исходный контракт. */
38794
+ type ServiceViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ServiceView"]>, "itemLink" | "itemObject" | "tags"> & {
38795
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38796
+ itemLink?: ItemLinkRead;
38797
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38798
+ itemObject?: ServiceItem;
38799
+ /** Теги; серверный null означает отсутствие ключа. */
38800
+ tags?: string[];
38801
+ };
38802
+ /** Именованная read-модель ResourceView; wire DTO и входы записи сохраняют исходный контракт. */
38803
+ type ResourceViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ResourceView"]>, "itemLink" | "itemObject" | "tags"> & {
38804
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38805
+ itemLink?: ItemLinkRead;
38806
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38807
+ itemObject?: ResourceItem;
38808
+ /** Теги; серверный null означает отсутствие ключа. */
38809
+ tags?: string[];
38810
+ };
38811
+ /** Именованная read-модель ParticipantView; wire DTO и входы записи сохраняют исходный контракт. */
38812
+ type ParticipantViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ParticipantView"]>, "itemLink" | "itemObject"> & {
38813
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38814
+ itemLink?: ItemLinkRead;
38815
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38816
+ itemObject?: ContactItem;
38817
+ };
38818
+ /** Именованная read-модель CaseParticipantView; wire DTO и входы записи сохраняют исходный контракт. */
38819
+ type CaseParticipantViewRead = Omit<NormalizedPublicity<OpenApiSchemas["CaseParticipantView"]>, "itemLink" | "itemObject" | "ticketResource" | "paymentResource"> & {
38820
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38821
+ itemLink?: ItemLinkRead;
38822
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38823
+ itemObject?: ContactItem;
38824
+ /** Предметные данные ticketResource с подготовленными вложенными карточками. */
38825
+ ticketResource?: ResourceItem;
38826
+ /** Предметные данные paymentResource с подготовленными вложенными карточками. */
38827
+ paymentResource?: ResourceItem;
38828
+ };
38829
+ /** Именованная read-модель TimetableCase; wire DTO и входы записи сохраняют исходный контракт. */
38830
+ type TimetableCaseRead = Omit<NormalizedPublicity<OpenApiSchemas["TimetableCase"]>, "itemLink" | "itemObject"> & {
38831
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38832
+ itemLink?: ItemLinkRead;
38833
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38834
+ itemObject?: CaseItem;
38835
+ };
38836
+ /** Именованная read-модель ItemView; wire DTO и входы записи сохраняют исходный контракт. */
38837
+ type ItemViewRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemView"]>, "itemLink" | "itemObject"> & {
38838
+ /** Предметные данные itemLink с подготовленными вложенными карточками. */
38839
+ itemLink?: ItemLinkRead;
38840
+ /** Предметные данные itemObject с подготовленными вложенными карточками. */
38841
+ itemObject?: TorrowItem;
38842
+ };
38843
+ /** Именованная read-модель Feedback; wire DTO и входы записи сохраняют исходный контракт. */
38844
+ type FeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["Feedback"]>, "author"> & {
38845
+ /** Предметные данные author с подготовленными вложенными карточками. */
38846
+ author?: TorrowItem;
38847
+ };
38848
+ /** Именованная read-модель ItemFeedback; wire DTO и входы записи сохраняют исходный контракт. */
38849
+ type ItemFeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["ItemFeedback"]>, "feedback"> & {
38850
+ /** Предметные данные feedback с подготовленными вложенными карточками. */
38851
+ feedback?: FeedbackRead;
38852
+ };
38853
+ /** Именованная read-модель UserFeedback; wire DTO и входы записи сохраняют исходный контракт. */
38854
+ type UserFeedbackRead = Omit<NormalizedPublicity<OpenApiSchemas["UserFeedback"]>, "itemFeedback"> & {
38855
+ /** Предметные данные itemFeedback с подготовленными вложенными карточками. */
38856
+ itemFeedback?: ItemFeedbackRead;
38857
+ };
38858
+ /** Именованная read-модель GroupStatus; wire DTO и входы записи сохраняют исходный контракт. */
38859
+ type GroupStatusRead = Omit<NormalizedPublicity<OpenApiSchemas["GroupStatus"]>, "group"> & {
38860
+ /** Предметные данные group с подготовленными вложенными карточками. */
38861
+ group?: TorrowItem;
38862
+ };
38863
+ /** Именованная read-модель OrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38864
+ type OrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["OrderResp"]>, "tags" | "order" | "personalInfo"> & {
38865
+ /** Теги; серверный null означает отсутствие ключа. */
38866
+ tags?: string[];
38867
+ /** Предметные данные order с подготовленными вложенными карточками. */
38868
+ order?: CaseItem;
38869
+ /** Предметные данные personalInfo с подготовленными вложенными карточками. */
38870
+ personalInfo?: CasePersonalInfoRead;
38871
+ };
38872
+ /** Именованная read-модель PickOrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38873
+ type PickOrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["PickOrderResp"]>, "orderCase"> & {
38874
+ /** Предметные данные orderCase с подготовленными вложенными карточками. */
38875
+ orderCase?: CaseItem;
38876
+ };
38877
+ /** Именованная read-модель ReturnOrderResp; wire DTO и входы записи сохраняют исходный контракт. */
38878
+ type ReturnOrderRespRead = Omit<NormalizedPublicity<OpenApiSchemas["ReturnOrderResp"]>, "orderCase"> & {
38879
+ /** Предметные данные orderCase с подготовленными вложенными карточками. */
38880
+ orderCase?: CaseItem;
38881
+ };
38882
+ /** Именованная read-модель ProfileListResp; wire DTO и входы записи сохраняют исходный контракт. */
38883
+ type ProfileListRespRead = Omit<NormalizedPublicity<OpenApiSchemas["ProfileListResp"]>, "profileList"> & {
38884
+ /** Предметные данные profileList с подготовленными вложенными карточками. */
38885
+ profileList?: ContactItem[] | null;
38886
+ };
38887
+ /** Именованная read-модель RemoveProfileResp; wire DTO и входы записи сохраняют исходный контракт. */
38888
+ type RemoveProfileRespRead = Omit<NormalizedPublicity<OpenApiSchemas["RemoveProfileResp"]>, "personalContactList"> & {
38889
+ /** Предметные данные personalContactList с подготовленными вложенными карточками. */
38890
+ personalContactList?: ContactItem[] | null;
38891
+ };
38892
+ /** Именованная read-модель AddProfileResp; wire DTO и входы записи сохраняют исходный контракт. */
38893
+ type AddProfileRespRead = Omit<NormalizedPublicity<OpenApiSchemas["AddProfileResp"]>, "profile" | "personalContactList"> & {
38894
+ /** Предметные данные profile с подготовленными вложенными карточками. */
38895
+ profile?: ContactItem;
38896
+ /** Предметные данные personalContactList с подготовленными вложенными карточками. */
38897
+ personalContactList?: ContactItem[] | null;
38898
+ };
38899
+ /** Именованная read-модель ExportGraph; wire DTO и входы записи сохраняют исходный контракт. */
38900
+ type ExportGraphRead = Omit<NormalizedPublicity<OpenApiSchemas["ExportGraph"]>, "items" | "views" | "timetableCases"> & {
38901
+ /** Предметные данные items с подготовленными вложенными карточками. */
38902
+ items?: TorrowItem[] | null;
38903
+ /** Предметные данные views с подготовленными вложенными карточками. */
38904
+ views?: ItemViewRead[] | null;
38905
+ /** Предметные данные timetableCases с подготовленными вложенными карточками. */
38906
+ timetableCases?: TimetableCaseRead[] | null;
38907
+ };
38908
+ /** Именованная read-модель SearchServiceResourcesResp; wire DTO и входы записи сохраняют исходный контракт. */
38909
+ type SearchServiceResourcesRespRead = Omit<NormalizedPublicity<OpenApiSchemas["SearchServiceResourcesResp"]>, "serviceResources"> & {
38910
+ /** Предметные данные serviceResources с подготовленными вложенными карточками. */
38911
+ serviceResources?: ResourceViewRead[] | null;
38912
+ };
38913
+ /** Именованная read-модель WorkloadInfo; wire DTO и входы записи сохраняют исходный контракт. */
38914
+ type WorkloadInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["WorkloadInfo"]>, "item" | "timetable"> & {
38915
+ /** Предметные данные item с подготовленными вложенными карточками. */
38916
+ item?: TorrowItem;
38917
+ /** Предметные данные timetable с подготовленными вложенными карточками. */
38918
+ timetable?: TimetableCaseRead[] | null;
38919
+ };
38920
+ /** Именованная read-модель GetServiceWorkloadInfoResp; wire DTO и входы записи сохраняют исходный контракт. */
38921
+ type GetServiceWorkloadInfoRespRead = Omit<NormalizedPublicity<OpenApiSchemas["GetServiceWorkloadInfoResp"]>, "workloadInfoList"> & {
38922
+ /** Предметные данные workloadInfoList с подготовленными вложенными карточками. */
38923
+ workloadInfoList?: WorkloadInfoRead[] | null;
38924
+ };
38925
+ /** Именованная read-модель TransactionInfo; wire DTO и входы записи сохраняют исходный контракт. */
38926
+ type TransactionInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["TransactionInfo"]>, "basisItem"> & {
38927
+ /** Предметные данные basisItem с подготовленными вложенными карточками. */
38928
+ basisItem?: TorrowItem;
38929
+ };
38930
+ /** Именованная read-модель AccountingTransaction; wire DTO и входы записи сохраняют исходный контракт. */
38931
+ type AccountingTransactionRead = Omit<NormalizedPublicity<OpenApiSchemas["AccountingTransaction"]>, "transactionInfo"> & {
38932
+ /** Предметные данные transactionInfo с подготовленными вложенными карточками. */
38933
+ transactionInfo?: TransactionInfoRead;
38934
+ };
38935
+ /** Именованная read-модель AnnouncementInfo; wire DTO и входы записи сохраняют исходный контракт. */
38936
+ type AnnouncementInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["AnnouncementInfo"]>, "itemNoteView" | "itemContactView" | "itemContextView" | "itemCalendarView" | "itemCaseView" | "itemLoyaltyCardView" | "itemLoyaltySystemView" | "itemServiceView" | "itemResourceView" | "senderProfileView" | "recipientProfileView"> & {
38937
+ /** Предметные данные itemNoteView с подготовленными вложенными карточками. */
38938
+ itemNoteView?: NoteViewRead;
38939
+ /** Предметные данные itemContactView с подготовленными вложенными карточками. */
38940
+ itemContactView?: ContactViewRead;
38941
+ /** Предметные данные itemContextView с подготовленными вложенными карточками. */
38942
+ itemContextView?: ContextViewRead;
38943
+ /** Предметные данные itemCalendarView с подготовленными вложенными карточками. */
38944
+ itemCalendarView?: CalendarViewRead;
38945
+ /** Предметные данные itemCaseView с подготовленными вложенными карточками. */
38946
+ itemCaseView?: CaseViewRead;
38947
+ /** Предметные данные itemLoyaltyCardView с подготовленными вложенными карточками. */
38948
+ itemLoyaltyCardView?: LoyaltyCardViewRead;
38949
+ /** Предметные данные itemLoyaltySystemView с подготовленными вложенными карточками. */
38950
+ itemLoyaltySystemView?: LoyaltySystemViewRead;
38951
+ /** Предметные данные itemServiceView с подготовленными вложенными карточками. */
38952
+ itemServiceView?: ServiceViewRead;
38953
+ /** Предметные данные itemResourceView с подготовленными вложенными карточками. */
38954
+ itemResourceView?: ResourceViewRead;
38955
+ /** Предметные данные senderProfileView с подготовленными вложенными карточками. */
38956
+ senderProfileView?: ContactViewRead;
38957
+ /** Предметные данные recipientProfileView с подготовленными вложенными карточками. */
38958
+ recipientProfileView?: ContactViewRead;
38959
+ };
38960
+ /** Именованная read-модель ActionHistoryInfo; wire DTO и входы записи сохраняют исходный контракт. */
38961
+ type ActionHistoryInfoRead = Omit<NormalizedPublicity<OpenApiSchemas["ActionHistoryInfo"]>, "itemNoteView" | "itemContactView" | "itemContextView" | "itemCalendarView" | "itemCaseView" | "itemLoyaltyCardView" | "itemLoyaltySystemView" | "itemServiceView" | "itemResourceView" | "userProfileView" | "correspondentProfileViewList"> & {
38962
+ /** Предметные данные itemNoteView с подготовленными вложенными карточками. */
38963
+ itemNoteView?: NoteViewRead;
38964
+ /** Предметные данные itemContactView с подготовленными вложенными карточками. */
38965
+ itemContactView?: ContactViewRead;
38966
+ /** Предметные данные itemContextView с подготовленными вложенными карточками. */
38967
+ itemContextView?: ContextViewRead;
38968
+ /** Предметные данные itemCalendarView с подготовленными вложенными карточками. */
38969
+ itemCalendarView?: CalendarViewRead;
38970
+ /** Предметные данные itemCaseView с подготовленными вложенными карточками. */
38971
+ itemCaseView?: CaseViewRead;
38972
+ /** Предметные данные itemLoyaltyCardView с подготовленными вложенными карточками. */
38973
+ itemLoyaltyCardView?: LoyaltyCardViewRead;
38974
+ /** Предметные данные itemLoyaltySystemView с подготовленными вложенными карточками. */
38975
+ itemLoyaltySystemView?: LoyaltySystemViewRead;
38976
+ /** Предметные данные itemServiceView с подготовленными вложенными карточками. */
38977
+ itemServiceView?: ServiceViewRead;
38978
+ /** Предметные данные itemResourceView с подготовленными вложенными карточками. */
38979
+ itemResourceView?: ResourceViewRead;
38980
+ /** Предметные данные userProfileView с подготовленными вложенными карточками. */
38981
+ userProfileView?: ContactViewRead;
38982
+ /** Предметные данные correspondentProfileViewList с подготовленными вложенными карточками. */
38983
+ correspondentProfileViewList?: ContactViewRead[] | null;
38984
+ };
38985
+
38986
+ /**
38987
+ * Корень иерархии объектов Torrow: схема OpenAPI `TorrowObject`.
38988
+ * `format: date-time` → `Date` в **`generated.ts`** (см. **`scripts/openapi-codegen.mjs`**).
38989
+ */
38990
+ type TorrowObject = TorrowObjectDto;
38991
+ /**
38992
+ * Общие поля item: схема `TorrowItem` + явное пересечение с `TorrowObject`, чтобы тип оставался подтипом `TorrowObject`.
38993
+ */
38994
+ type TorrowItem = Omit<NormalizedPublicity<TorrowItemDto>, "tags" | "integrationIds" | "personalInfo"> & {
38995
+ /** Теги карточки; серверный null означает отсутствие поля. */
38996
+ tags?: string[];
38997
+ /** Интеграции; серверный null означает отсутствие ключа. */
38998
+ integrationIds?: string[];
38999
+ /** Персональные сведения с array-only контейнерами напоминаний и уведомлений. */
39000
+ personalInfo?: PersonalInfoRead;
39001
+ } & TorrowObject;
39002
+ /** Сохраняет подтип персональных сведений и его модификаторы, сужая только два setter-списка. */
39003
+ type ItemPersonalInfoRead<T> = T extends object ? {
39004
+ [K in keyof T]: K extends "personalReminders" | "notificationWayList" ? Exclude<T[K], null> : T[K];
39005
+ } : T;
39006
+ /**
39007
+ * Публичный item-тип из доменного OpenAPI-DTO: пересечение с **`TorrowItem`**, чтобы в типах явно
39008
+ * участвовали общие поля item и связь с **`TorrowObject`** (после codegen даты уже **`Date`** в DTO).
39009
+ */
39010
+ type TorrowItemFromDto<D extends object> = NormalizedPublicity<{
39011
+ [K in keyof D]: K extends "tags" | "integrationIds" ? Exclude<D[K], null> : K extends "personalInfo" ? ItemPersonalInfoRead<D[K]> : D[K];
39012
+ }> & TorrowItem;
39013
+ /**
39014
+ * Ключи, которые не должны попадать в тело create/update: профиль и дискриминатор,
39015
+ * поля социального слоя с отдельными эндпоинтами (`TorrowItemCoreFacade` / `TorrowItemFacade`),
39016
+ * служебный `meta`, серверные агрегаты, `contactProperties` контактов
39017
+ * (`id` и `image` в теле допустимы — в т.ч. клиентский `id` и `FileInfo` после presigned upload).
39018
+ * (`ContactsFacade.updateContactProperties`), **`searchMode`** и **`anyoneAccess`**
39019
+ * (read-only для всех item: вычисляются на сервере от **`publicityType`**), а также **`activityStatus`** и **`registerInfo`**
39020
+ * (read-only на `ContactItem` в продукте / OpenAPI; у прочих item-типов ключей нет — `Omit` без эффекта),
39021
+ * а также **`profileType`**, **`profileProperties`**, **`hasTimetable`** контакта
39022
+ * (сценарий Профиля — `POST /api/v1/user/profiles`, тип **`UserProfileItemForAdd`**).
39023
+ */
39024
+ type TorrowItemKeysExcludedFromItemWriteBody = "personalInfo" | "discriminator" | "publicityType" | "masterInfo" | "integrationIds" | "tags" | "groupInfo" | "solutionData" | "childItemStats" | "feedbackOptions" | "uniqueName" | "blockInfo" | "meta" | "contactProperties" | "activityStatus" | "registerInfo" | "searchMode" | "anyoneAccess" | "profileType" | "profileProperties" | "hasTimetable";
39025
+ /** Поля item в телах create/update: без ключей, исключённых в `TorrowItemKeysExcludedFromItemWriteBody`. */
39026
+ type TorrowItemForCreateOrUpdate<T extends TorrowItem> = Omit<T, TorrowItemKeysExcludedFromItemWriteBody>;
39027
+
39028
+ type NoteItem = Omit<TorrowItemFromDto<NoteItemDto>, "files"> & {
39029
+ /** Прочитанные вложения; серверный null удаляет optional-поле, явно полученный [] сохраняется. */
39030
+ files?: NonNullable<NoteItemDto["files"]>;
39031
+ };
39032
+ /** Три формата публичного SDK; остальные серверные строки при чтении становятся Text. */
37866
39033
  type NoteType = NoteTypeDto;
37867
39034
  type ImagePreviewSize = NonNullable<NoteItem["imagePreviewSize"]>;
37868
- declare const NoteTypeValues: {
37869
- readonly Unknown: "Unknown";
37870
- readonly Text: "Text";
37871
- readonly Html: "Html";
37872
- readonly Markdown: "Markdown";
37873
- readonly Hlink: "Hlink";
37874
- readonly File: "File";
37875
- readonly Photo: "Photo";
37876
- readonly Voice: "Voice";
37877
- readonly Geolocation: "Geolocation";
37878
- readonly Qr: "Qr";
37879
- readonly ServiceSpecification: "ServiceSpecification";
37880
- };
39035
+ /** Поддерживаемые форматы заметок; публичный NoteType также принимает строковые литералы. */
39036
+ declare enum NoteTypeValues {
39037
+ /** HTML-разметка в data. */
39038
+ Html = "Html",
39039
+ /** Исходный Markdown в data. */
39040
+ Markdown = "Markdown",
39041
+ /** Текст либо нормализованный формат прочитанной серверной заметки. */
39042
+ Text = "Text"
39043
+ }
37881
39044
  declare const ImagePreviewSizeValues: {
37882
39045
  readonly Undefined: "Undefined";
37883
39046
  readonly Hidden: "Hidden";
@@ -37889,11 +39052,14 @@ declare const ImagePreviewSizeValues: {
37889
39052
  readonly LargeSlider: "LargeSlider";
37890
39053
  };
37891
39054
  /** Публичность create/update: Personal, PublicWithRequest, PublicAvailable или Link; без значения при create — Personal. Поле meta.version сохраняет optimistic concurrency при update. Серверные Private/Undefined читаются как Personal. */
37892
- type NoteItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<NoteItem> & Pick<NoteItem, "publicityType" | "meta">;
39055
+ type NoteItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<NoteItem>, "files"> & Pick<NoteItem, "publicityType" | "meta"> & {
39056
+ /** Полная запись сохраняет wire-контракт вложений: null допустим наряду с массивом. */
39057
+ files?: NoteItemDto["files"];
39058
+ };
37893
39059
  /** Частичное изменение заметки; общие name/image описаны в TorrowItemPatchFields. */
37894
39060
  interface NoteItemPatch extends TorrowItemPatchFields {
37895
- /** Новый серверный формат; Unknown и ServiceSpecification не поддерживаются root update. */
37896
- noteType?: Exclude<NoteType, "Unknown" | "ServiceSpecification">;
39061
+ /** Новый формат Html, Markdown или Text; другие значения отклоняются до первого GET. */
39062
+ noteType?: NoteType;
37897
39063
  /** Исходный текст без trim/parse; null очищает. Пустое/whitespace содержимое нормализуется сервером. */
37898
39064
  data?: string | null;
37899
39065
  /** Полная замена ссылок на загруженные файлы; [] снимает вложения, пропуск сохраняет их. */
@@ -37961,232 +39127,6 @@ type ItemTagsListQuery = {
37961
39127
  sort?: OpenApiSchemas["ItemViewSortCondition"] | null;
37962
39128
  };
37963
39129
 
37964
- type ContactItem = TorrowItemFromDto<ContactItemDto>;
37965
- /** Канал связи для частичной записи: пользовательские поля {@link Communication}, без серверных checkDate/valueForSearch; rid сохраняет идентичность, checkState по умолчанию Unchecked. */
37966
- type ContactCommunicationPatch = Omit<Communication, "checkDate" | "valueForSearch">;
37967
- /** Частичное изменение обычного или профильного Contact. Общие name/image наследуют {@link TorrowItemPatchFields}; пропуск сохраняет поле, вложенное значение заменяется целиком. */
37968
- interface ContactItemPatch extends TorrowItemPatchFields {
37969
- /** Полная замена адресов; []/null удаляют адреса, отсутствующий rid создаётся SDK. */
37970
- addresses?: Address[] | null;
37971
- /** Дата рождения; null удаляет дату. */
37972
- birthday?: Date | null;
37973
- /** Полная замена каналов; []/null очищают, серверные сведения проверки не принимаются на вход. */
37974
- communications?: ContactCommunicationPatch[] | null;
37975
- /** Памятные даты целиком; []/null очищают, отсутствующий rid создаётся SDK. */
37976
- dates?: MemorableDate[] | null;
37977
- /** Имя человека; null/пустая строка очищают текст без нормализации. */
37978
- firstName?: string | null;
37979
- /** Фамилия; null/пустая строка очищают текст. */
37980
- lastName?: string | null;
37981
- /** Отчество; null/пустая строка очищают текст. */
37982
- middleName?: string | null;
37983
- /** Название компании; null/пустая строка очищают текст. */
37984
- company?: string | null;
37985
- /** Должность; null/пустая строка очищают текст. */
37986
- position?: string | null;
37987
- /** Описание контакта; null/пустая строка очищают текст. */
37988
- description?: string | null;
37989
- /** Пол по OpenAPI; UnknownGender означает неизвестное значение, null не принимается. */
37990
- gender?: Gender;
37991
- /** Полная замена ссылок на фотографии; []/null очищают, URL и metadata файла не записываются. */
37992
- photos?: TorrowItemPatchImage[] | null;
37993
- /** Визитка целиком с нормализацией трёх слотов; null запрещён, для очистки передать три явно пустых значения. */
37994
- visitCard?: ContactVisitCard;
37995
- }
37996
- /** Элемент `ContactItem.addresses` (ответ GET). */
37997
- type Address = NonNullable<ContactItem["addresses"]>[number];
37998
- /** Элемент `ContactItem.communications` (ответ GET, полная модель). */
37999
- type Communication = NonNullable<ContactItem["communications"]>[number];
38000
- /** `communications[]` в теле `POST`/`PUT` контакта: без read-only `checkDate`; `checkState` опционален (SDK подставляет `Unchecked`). */
38001
- type CommunicationForCreateOrUpdate = Omit<Communication, "checkDate">;
38002
- /** Элемент `ContactItem.dates`. */
38003
- type MemorableDate = NonNullable<ContactItem["dates"]>[number];
38004
- /** `ContactItem.rating`. */
38005
- type Rating = NonNullable<ContactItem["rating"]>;
38006
- /** `ContactItem.visitCard` (3 слота отображения). */
38007
- type ContactVisitCard = NonNullable<ContactItem["visitCard"]>;
38008
- /** Элемент `ContactVisitCard.fields`. */
38009
- type ContactVisitCardField = NonNullable<NonNullable<ContactVisitCard["fields"]>[number]>;
38010
- /** `ContactItem.personalInfo`. */
38011
- type ContactPersonalInfo = NonNullable<ContactItem["personalInfo"]>;
38012
- /** `ContactItem.profileType`. */
38013
- type ProfileType = NonNullable<ContactItem["profileType"]>;
38014
- /** `ContactItem.registerInfo`. */
38015
- type RegisterInfo = NonNullable<ContactItem["registerInfo"]>;
38016
- type Gender = NonNullable<ContactItem["gender"]>;
38017
- type CommunicationType = NonNullable<Communication["type"]>;
38018
- declare const GenderValues: {
38019
- readonly Unknown: "UnknownGender";
38020
- readonly Male: "Male";
38021
- readonly Female: "Female";
38022
- readonly Other: "OtherGender";
38023
- };
38024
- declare const CommunicationTypeValues: {
38025
- readonly Unknown: "UnknownCommunicationType";
38026
- readonly Phone: "Phone";
38027
- readonly Sms: "Sms";
38028
- readonly Email: "Email";
38029
- readonly WebSite: "WebSite";
38030
- readonly Telegram: "Telegram";
38031
- readonly WhatsApp: "WhatsApp";
38032
- readonly Viber: "Viber";
38033
- readonly Facebook: "Facebook";
38034
- readonly Instagram: "Instagram";
38035
- readonly Vkontakte: "Vkontakte";
38036
- readonly Odnoklassniki: "Odnoklassniki";
38037
- readonly Skype: "Skype";
38038
- readonly Youtube: "Youtube";
38039
- readonly Twitter: "Twitter";
38040
- readonly LinkedIn: "LinkedIn";
38041
- readonly Max: "Max";
38042
- readonly Other: "Other";
38043
- };
38044
- declare const ProfileTypeValues: {
38045
- readonly Unknown: "UnknownProfile";
38046
- readonly None: "None";
38047
- readonly MyProfile: "MyProfile";
38048
- readonly AnyProfile: "AnyProfile";
38049
- readonly CopyProfile: "CopyProfile";
38050
- };
38051
- type SendCommunicationCodeReq = SendCommunicationCodeReqDto;
38052
- type SendCommunicationCodeResp = SendCommunicationCodeRespDto;
38053
- type VerifyCommunicationCodeReq = VerifyCommunicationCodeReqDto;
38054
- type VerifyCommunicationCodeResp = VerifyCommunicationCodeRespDto;
38055
- type ActivityStatus = ActivityStatusDto;
38056
- type ContactProperties = ContactPropertiesDto;
38057
- type UpdateContactPropertiesResp = UpdateContactPropertiesRespDto;
38058
- type UpdateMasterInfoReq = UpdateMasterInfoReqDto;
38059
- type FeedbackOptions = FeedbackOptionsDto;
38060
- type PersonalReminder = PersonalReminderDto;
38061
-
38062
- type GroupStatus = NormalizedPublicity<GroupStatusDto>;
38063
- type UpdateItemAccountsReq = UpdateItemAccountsReqDto;
38064
- type UpdateItemGroupsReq = UpdateItemGroupsReqDto;
38065
- type UpdatePersonalListOrderReq = UpdatePersonalListOrderReqDto;
38066
- type UpdatePersonalListOrderResp = UpdatePersonalListOrderRespDto;
38067
- /**
38068
- * Тело `POST`/`PUT` **`/api/v1/contacts`** (обычный контакт).
38069
- * `communications` — {@link CommunicationForCreateOrUpdate} (без read-only `checkDate`).
38070
- */
38071
- type ContactItemForCreateOrUpdate = Omit<TorrowItemForCreateOrUpdate<ContactItem>, "communications"> & {
38072
- communications?: CommunicationForCreateOrUpdate[] | null;
38073
- };
38074
-
38075
- /** Общий query участников для loyalty cards / loyalty systems (дубли не тащить в два `types.ts`). */
38076
- type LoyaltyParticipantsQuery = {
38077
- participantStateList?: ParticipantState[] | null;
38078
- participantTypeList?: ParticipantType[] | null;
38079
- take?: number | null;
38080
- skip?: number | null;
38081
- lmFrom?: Date | null;
38082
- lmTo?: Date | null;
38083
- cdFrom?: Date | null;
38084
- cdTo?: Date | null;
38085
- includeDeleted?: boolean | null;
38086
- sort?: ObjectSortCondition | null;
38087
- };
38088
-
38089
- type LoyaltySystemItem = TorrowItemFromDto<LoyaltySystemItemDto>;
38090
- type CreateLoyaltyCardReq = CreateLoyaltyCardReqDto;
38091
- type SearchLoyaltyCardsReq = SearchLoyaltyCardsReqDto;
38092
- type LoyaltyCardFilterCondition = LoyaltyCardFilterConditionDto;
38093
- type LoyaltyCardSortCondition = LoyaltyCardSortConditionDto;
38094
- type GetLoyaltySystemsStatisticsReq = GetLoyaltySystemsStatisticsReqDto;
38095
- type GetLoyaltySystemsStatisticsResp = GetLoyaltySystemsStatisticsRespDto;
38096
- type LoyaltySystemsStatisticsResp = LoyaltySystemsStatisticsRespDto;
38097
- type OperationType = OperationTypeDto;
38098
- type ItemSortCondition = ItemSortConditionDto;
38099
- type LoyaltySystemItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltySystemItem>;
38100
-
38101
- type LoyaltyCardIssueType = NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>;
38102
- type LoyaltyCardUpdateKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateKeyInformation"]>;
38103
- type LoyaltyCardUpdateNonKeyInformation = NonNullable<LoyaltySystemItem["loyaltyCardUpdateNonKeyInformation"]>;
38104
- declare const LoyaltyCardIssueTypeValues: {
38105
- readonly Unknown: "UnknownLoyaltyCardIssueType";
38106
- readonly Manual: "Manual";
38107
- readonly AutoActive: "AutoActive";
38108
- readonly AutoIssued: "AutoIssued";
38109
- };
38110
- declare const LoyaltyCardUpdateKeyInformationValues: {
38111
- readonly Unknown: "UnknownLoyaltyCardUpdateKeyInformation";
38112
- readonly NonKeyDisallowed: "NonKeyDisallowed";
38113
- readonly NonKeyAllowed: "NonKeyAllowed";
38114
- };
38115
- declare const LoyaltyCardUpdateNonKeyInformationValues: {
38116
- readonly Unknown: "UnknownLoyaltyCardUpdateNonKeyInformation";
38117
- readonly KeyDisallowed: "KeyDisallowed";
38118
- readonly KeyAllowed: "KeyAllowed";
38119
- };
38120
- /** OpenAPI `LoyaltyCardSortCondition` — сортировка поиска карт в программе. */
38121
- declare const LoyaltyCardSortConditionValues: {
38122
- readonly SequenceCardNumberAsc: "SequenceCardNumberAsc";
38123
- readonly SequenceCardNumberDesc: "SequenceCardNumberDesc";
38124
- readonly LoyaltyCardStateAsc: "LoyaltyCardStateAsc";
38125
- readonly LoyaltyCardStateDesc: "LoyaltyCardStateDesc";
38126
- readonly SequenceCardNumberAscLoyaltyCardStateAsc: "SequenceCardNumberAscLoyaltyCardStateAsc";
38127
- readonly SequenceCardNumberDescLoyaltyCardStateAsc: "SequenceCardNumberDescLoyaltyCardStateAsc";
38128
- readonly SequenceCardNumberAscLoyaltyCardStateDesc: "SequenceCardNumberAscLoyaltyCardStateDesc";
38129
- readonly SequenceCardNumberDescLoyaltyCardStateDesc: "SequenceCardNumberDescLoyaltyCardStateDesc";
38130
- readonly LoyaltyCardStateAscSequenceCardNumberAsc: "LoyaltyCardStateAscSequenceCardNumberAsc";
38131
- readonly LoyaltyCardStateAscSequenceCardNumberDesc: "LoyaltyCardStateAscSequenceCardNumberDesc";
38132
- readonly LoyaltyCardStateDescSequenceCardNumberAsc: "LoyaltyCardStateDescSequenceCardNumberAsc";
38133
- readonly LoyaltyCardStateDescSequenceCardNumberDesc: "LoyaltyCardStateDescSequenceCardNumberDesc";
38134
- };
38135
- type LoyaltyGroupListQuery = {
38136
- itemType?: TorrowObjectType | null;
38137
- minParticipantType?: ParticipantType | null;
38138
- operationType?: OperationType | null;
38139
- recursionDepth?: number | null;
38140
- take?: number | null;
38141
- skip?: number | null;
38142
- lmfrom?: Date | null;
38143
- lmto?: Date | null;
38144
- includeDeleted?: boolean | null;
38145
- sort?: ItemSortCondition | null;
38146
- };
38147
- /** Частичное изменение настроек программы; общие name/image сохраняют контракт TorrowItemPatchFields. */
38148
- interface LoyaltySystemItemPatch extends TorrowItemPatchFields {
38149
- /** Описание программы; null очищает. */
38150
- description?: string | null;
38151
- /** Ссылка на визитку; null снимает связь. */
38152
- businessCardId?: string | null;
38153
- /** Правило выпуска будущих карт; Unknown не принимается. */
38154
- loyaltyCardIssueType?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardIssueType"]>, "UnknownLoyaltyCardIssueType">;
38155
- /** Доступ к выпускаемым картам; это не публичность самого item. */
38156
- loyaltyCardAnyoneAccess?: Exclude<NonNullable<LoyaltySystemItem["loyaltyCardAnyoneAccess"]>, "UnknownAnyoneAccess">;
38157
- /** Политика изменения ключевой информации карт. */
38158
- loyaltyCardUpdateKeyInformation?: Exclude<LoyaltyCardUpdateKeyInformation, "UnknownLoyaltyCardUpdateKeyInformation">;
38159
- /** Политика изменения неключевой информации карт. */
38160
- loyaltyCardUpdateNonKeyInformation?: Exclude<LoyaltyCardUpdateNonKeyInformation, "UnknownLoyaltyCardUpdateNonKeyInformation">;
38161
- /** Срок действия будущей карты в днях (int32); 0 — значение, null очищает. */
38162
- loyaltyCardUsagePeriod?: number | null;
38163
- /** Начало программы; null снимает ограничение. */
38164
- startDate?: Date | null;
38165
- /** Окончание программы; null снимает ограничение. */
38166
- expiredDate?: Date | null;
38167
- /** Полная замена требований к контакту при выпуске; null очищает. */
38168
- contactInformationFieldsRequirements?: NonNullable<LoyaltySystemItem["contactInformationFieldsRequirements"]> | null;
38169
- /** Полная замена ссылок на реферальные программы; [] очищает. */
38170
- referralProgramIds?: string[];
38171
- /** Начальные значения будущего выпуска; существующие балансы не меняются, [] очищает. */
38172
- beginTransactionValues?: NonNullable<LoyaltySystemItem["beginTransactionValues"]>;
38173
- /** Полная конфигурация стартового абонемента будущих карт; null очищает. */
38174
- initialSubscription?: LoyaltySystemInitialSubscriptionPatch | null;
38175
- /** Полная замена имён учётных продуктов; [] очищает. */
38176
- accountingProductNames?: NonNullable<LoyaltySystemItem["accountingProductNames"]>;
38177
- }
38178
- /**
38179
- * Конфигурация будущего стартового абонемента: name — название, usagePeriod — срок в днях,
38180
- * transactionValues — начальные значения. Наследует эти атрибуты InitialSubscription;
38181
- * image ограничено ссылкой файла, URL/служебные метаданные не редактируются.
38182
- */
38183
- type LoyaltySystemInitialSubscriptionPatch = Omit<NonNullable<LoyaltySystemItem["initialSubscription"]>, "image"> & {
38184
- /** Загруженный файл стартового абонемента; null снимает изображение. */
38185
- image?: TorrowItemPatchImage | null;
38186
- };
38187
- /** Полное обновление программы: numeratorInfo доступно только при создании и чтении. */
38188
- type LoyaltySystemItemForUpdate = Omit<LoyaltySystemItemForCreateOrUpdate, "numeratorInfo">;
38189
-
38190
39130
  type IncludeToParentReq = IncludeToParentReqDto;
38191
39131
  type IncludeForUserReq = IncludeForUserReqDto;
38192
39132
  type ItemProperties = OpenApiSchemas["ItemProperties"];
@@ -38278,6 +39218,9 @@ declare abstract class TorrowItemCoreFacade<TItem, TParticipantsQuery = ContactC
38278
39218
  /** Читает одну карточку своим доменным getById без связанных данных. */
38279
39219
  protected abstract readFileMetadataItem(id: string, signal?: AbortSignal): Promise<FileMetadataItem>;
38280
39220
  protected constructor(http: HttpClient, basePath: string, socialOpts?: TorrowItemFacadeOptions);
39221
+ /** Предметная выдача по уникальному имени; внутренние patch GET остаются wire. */
39222
+ protected projectReadItem(item: OpenApiSchemas["TorrowItem"]): TItem;
39223
+ protected projectReadItem<T>(item: T): T;
38281
39224
  /**
38282
39225
  * Id вложения (presigned image/file) — тип **File**.
38283
39226
  * `ownerTorrowId`: profileId, userId или id item того же пользователя (shard).
@@ -38467,6 +39410,10 @@ declare abstract class TorrowItemCoreFacade<TItem, TParticipantsQuery = ContactC
38467
39410
  getByUniqueName(uniqueName: string, options?: {
38468
39411
  signal?: AbortSignal;
38469
39412
  }): Promise<TItem>;
39413
+ /** Читает исходную карточку; доменный фасад применяет полную read-проекцию один раз. */
39414
+ protected readByUniqueName(uniqueName: string, options?: {
39415
+ signal?: AbortSignal;
39416
+ }): Promise<OpenApiSchemas["TorrowItem"]>;
38470
39417
  /** Полная карточка без аватара → null (1 GET); иначе FileInfo из image/info (2 GET). Требуется доступ к Full. */
38471
39418
  getImageInfo(torrowId: string, options?: {
38472
39419
  signal?: AbortSignal;
@@ -38613,264 +39560,6 @@ type PersonalListQuery = {
38613
39560
  participantTypeList?: ParticipantTypeDto[] | null;
38614
39561
  };
38615
39562
 
38616
- /** Предметные значения; версия услуги передаётся отдельно. */
38617
- type ServiceImplicitTagParams = {
38618
- /** Пользовательское название заказа для отображения в приложении; не меняет серверное имя создаваемого заказа. */
38619
- orderName?: string;
38620
- /** Часовой пояс отображения услуги, например Europe/Moscow. */
38621
- timeZone?: string;
38622
- /** За сколько минут до начала запрещена отмена участия. */
38623
- disableCancelMyParticipationBeforeMinutes?: number;
38624
- /** За сколько минут до начала запрещён перенос заказа. */
38625
- disableUpdateOrderTimeBeforeMinutes?: number;
38626
- /** Сообщение пользователю при недоступной записи. */
38627
- unavailableBookingMessage?: string;
38628
- /** Название поля со скидкой в процентах. */
38629
- discountPercentageFieldName?: string;
38630
- /** Интервал между событиями в секундах. */
38631
- marginTimeSec?: number;
38632
- /** Задержка автоматического подключения уведомлений в секундах. */
38633
- autoStartNotificationDelaySeconds?: number;
38634
- /**
38635
- * Скрывает UI подключения уведомлений Telegram и Max через точный тег `HideMessengerNotifications`.
38636
- * BehaviorSettings API также читает точный legacy alias; в его состоянии флаг всегда boolean.
38637
- */
38638
- hideMessengerConnectUi?: boolean;
38639
- /** Полный набор соглашений; пустой массив очищает набор. */
38640
- agreementItems?: {
38641
- /** Положительный уникальный номер соглашения. */
38642
- index: number;
38643
- /** Текст соглашения; хотя бы text или link должны быть заданы. */
38644
- text?: string;
38645
- /** Ссылка соглашения; кодирование хранения выполняет SDK. */
38646
- link?: string;
38647
- }[];
38648
- /** Таймаут перехода после оплаты в секундах. */
38649
- paymentRedirectTimeoutSec?: number;
38650
- };
38651
- /** Минимальная структура поведения ресурса (сейчас: только margin between events). */
38652
- type ResourceBehaviorSettings = {
38653
- marginTimeSec?: number;
38654
- /**
38655
- * Идентификатор TTLock-замка в формате тега `<lockNumber>:lockId`.
38656
- */
38657
- lockId?: number;
38658
- };
38659
-
38660
- /** Редактируемые денежные поля общей схемы PriceProperties: priceWithoutDiscount — исходная цена, discount — скидка, salePrice — итоговая, currencyCode — валюта, prepayment — предоплата, expences — расходы, takePrice — выручка, taxRate/taxAmount — налог. Значения наследуются из OpenAPI; SDK ничего не вычисляет. paymentProviderPropertiesList исключён: API игнорирует его в обоих направлениях. */
38661
- type ItemPricePatchProperties = Omit<NonNullable<NonNullable<NonNullable<ServiceItemApiDto["priceInfo"]>["settings"]>[number]["priceProperties"]>, "paymentProviderPropertiesList">;
38662
- /** Одна цена с собственным расписанием; запись заменяется целиком при priceInfo patch. */
38663
- interface ItemPricePatchSetting {
38664
- /** Цена данной записи. Чтобы удалить цену, удалите всю запись из settings. */
38665
- priceProperties: ItemPricePatchProperties;
38666
- /** Расписание действия данной цены; null либо отсутствие означает отсутствие ограничения этой структуры. */
38667
- schedule?: NonNullable<ServiceItemApiDto["schedule"]> | null;
38668
- }
38669
- /** Полное редактируемое представление цен; настройки и их расписания заменяются целиком. */
38670
- interface ItemPricePatchInfo {
38671
- /** Упорядоченные ценовые записи; [] снимает настройки. Каждая запись содержит цену. */
38672
- settings: ItemPricePatchSetting[];
38673
- }
38674
- /** Полная замена ценовой области; отдельные записи меняются передачей нового списка settings. */
38675
- interface ItemPricePatchFields {
38676
- /** Полная замена всех ценовых записей; null очищает всю область. */
38677
- priceInfo?: ItemPricePatchInfo | null;
38678
- }
38679
-
38680
- /** Причина неполного предметного чтения конкретной настройки. */
38681
- declare enum ServiceBehaviorSettingsIssueReason {
38682
- /** Есть некорректное значение; поле исключено из предметного снимка. */
38683
- InvalidValue = "InvalidValue",
38684
- /** Есть противоречивые значения; порядок не определяет результат. */
38685
- AmbiguousValue = "AmbiguousValue"
38686
- }
38687
- /** Диагностика настройки без раскрытия внутреннего представления. */
38688
- interface ServiceBehaviorSettingsIssue {
38689
- /** Поле, значение которого не может быть достоверно прочитано. */
38690
- field: keyof ServiceBehaviorSettings;
38691
- /** Некорректное значение либо несколько противоречивых значений. */
38692
- reason: ServiceBehaviorSettingsIssueReason;
38693
- }
38694
- /** Проверенное предметное состояние услуги. */
38695
- interface ServiceBehaviorSettingsState {
38696
- /** ID услуги, для которой выполнено чтение. */
38697
- serviceId: string;
38698
- /** Положительная int32 meta.version всей услуги, не отдельный счётчик настроек. */
38699
- version: number;
38700
- /** Прочитанные значения; поля с issues не являются полным снимком. */
38701
- settings: ServiceBehaviorSettings;
38702
- /** Проблемы предметного чтения; пустой массив означает полный снимок настроек. */
38703
- issues: ServiceBehaviorSettingsIssue[];
38704
- }
38705
- /** Результат изменения; поля состояния имеют смысл из ServiceBehaviorSettingsState. */
38706
- interface ServiceBehaviorSettingsUpdateResult extends ServiceBehaviorSettingsState {
38707
- /** Был ли PUT; settings описывают ожидаемый результат, без автоматического readback. */
38708
- changed: boolean;
38709
- }
38710
- /** Управление записью BehaviorSettings; проверку версии выбирает потребитель. */
38711
- interface ServiceBehaviorSettingsUpdateOptions {
38712
- /** Ожидаемая meta.version: 1..2147483647. При наличии включает проверку указанной версии. */
38713
- versionToCheck?: number;
38714
- /** true включает CAS по версии внутреннего GET, если versionToCheck не задан. По умолчанию CAS выключен. */
38715
- checkVersion?: true;
38716
- /** true (по умолчанию) сохраняет пропущенные поля; false полностью заменяет настройки. */
38717
- mergeParameters?: boolean;
38718
- /** Выбранный профиль только для внутреннего GET; не предоставляет право записи. */
38719
- profileId?: string | null;
38720
- /** Гостевой контекст только для GET; не Bearer и не право записи. */
38721
- securityToken?: string | null;
38722
- /** Создание объявления при PUT; отсутствие/null означает false. */
38723
- isNeedAnnouncement?: boolean | null;
38724
- /** Отмена чтения и записи; после отмены автоматических запросов нет. */
38725
- signal?: AbortSignal;
38726
- }
38727
-
38728
- type ServiceItemApi = NormalizedPublicity<ServiceItemApiDto>;
38729
- type ResourceGroup = NonNullable<ServiceItemApi["resourceGroupList"]>[number];
38730
- type BookingProperties = NonNullable<ResourceGroup["bookingProperties"]>;
38731
- type CreateOrderReq = CreateOrderReqDto;
38732
- type OrderResp = NormalizedPublicity<OrderRespDto>;
38733
- type SearchServiceResourcesReq = SearchServiceResourcesReqDto;
38734
- type SearchServiceResourcesResp = NormalizedPublicity<SearchServiceResourcesRespDto>;
38735
- type StepDescription = StepDescriptionDto;
38736
- type SessionDurationProperties = SessionDurationPropertiesDto;
38737
- type GetServiceWorkloadInfoRequest = GetServiceWorkloadInfoRequestDto;
38738
- type GetServiceWorkloadInfoResp = NormalizedPublicity<GetServiceWorkloadInfoRespDto>;
38739
- type GetTimetableStatisticsRequest = GetTimetableStatisticsRequestDto;
38740
- type TimetableStatisticsResp = TimetableStatisticsRespDto;
38741
- type GetCheckInScheduleReq = GetCheckInScheduleReqDto;
38742
- type GetCheckInScheduleResp = GetCheckInScheduleRespDto;
38743
- type GetReCheckInScheduleReq = GetReCheckInScheduleReqDto;
38744
- type UpdateOrderReq = UpdateOrderReqDto;
38745
- type UpdateOrderInfoReq = UpdateOrderInfoReqDto;
38746
- type ChangeOrderServiceReq = ChangeOrderServiceReqDto;
38747
- /**
38748
- * Публичная доменная структура для настройки поведения услуги.
38749
- * Внутри SDK маппится в `service.tags`.
38750
- * orderName задаёт название для отображения в приложении, не серверное имя создаваемого заказа.
38751
- */
38752
- type ServiceBehaviorSettings = ServiceImplicitTagParams;
38753
-
38754
- /**
38755
- * SDK-тип услуги: OpenAPI `ServiceItem` + удобный доменный слой.
38756
- * `behaviorSettings` сериализуется/десериализуется через `tags` внутри SDK.
38757
- */
38758
- type ServiceItem = TorrowItemFromDto<ServiceItemApi> & {
38759
- behaviorSettings?: ServiceBehaviorSettings;
38760
- };
38761
- type ServiceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ServiceItem>;
38762
- /** Полный update услуги: атрибуты create/update без numeratorInfo; meta сохраняет CAS-версию самого item, не персональной связи. Полный GET-снимок допускается структурно, runtime отбрасывает numeratorInfo. */
38763
- type ServiceItemForUpdate = Omit<ServiceItemForCreateOrUpdate, "numeratorInfo"> & Pick<ServiceItem, "meta">;
38764
- /** Частичное изменение услуги; name/image наследуют назначение {@link TorrowItemPatchFields}; priceInfo заменяет всю ценовую область согласно ItemPricePatchFields. Остальные поля ниже описывают полную замену выбранного значения. */
38765
- type ServiceItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38766
- /** Описание услуги; null/empty очищает, пропуск сохраняет. */
38767
- description?: string | null;
38768
- /** Идентификатор места оказания услуги; null снимает привязку. */
38769
- placeId?: string | null;
38770
- /** Текстовое описание места; null/empty очищает. */
38771
- place?: string | null;
38772
- /** Полное расписание; вложенные диапазоны заменяются целиком, null снимает структуру. */
38773
- schedule?: NonNullable<ServiceItemApi["schedule"]> | null;
38774
- /** Длительность бронирования в секундах; null снимает ограничение. */
38775
- bookingDuration?: number | null;
38776
- /** Числовой вид расписания; null снимает настройку. */
38777
- timetableView?: number | null;
38778
- /** Граница закрытия регистрации по wire-контракту; null снимает. */
38779
- registrationClose?: number | null;
38780
- /** Граница открытия регистрации по wire-контракту; null снимает. */
38781
- registrationOpen?: number | null;
38782
- /** Максимальное число клиентов; null снимает лимит. */
38783
- maxConsumerQuantity?: number | null;
38784
- /** Полная замена списка профилей исполнителей; [] очищает. */
38785
- executorIdList?: NonNullable<ServiceItemApi["executorIdList"]>;
38786
- /** Требование одобрения; false — значение, null снимает настройку. */
38787
- needApproval?: boolean | null;
38788
- /** Шаг сетки времени; null снимает настройку. */
38789
- timeAlignment?: number | null;
38790
- /** Лимит одновременно действующих заказов услуги; null снимает. */
38791
- orderQuote?: number | null;
38792
- /** Пауза между слотами в секундах; null снимает. */
38793
- marginTime?: number | null;
38794
- /** Доля использования исполнителя по wire-контракту; null снимает. */
38795
- executorUsagePercent?: number | null;
38796
- /** Опорная дата первой недели; Date сериализуется штатным SDK, null снимает. */
38797
- firstWeekDate?: Date | null;
38798
- /** Группа допустимых клиентов; null снимает привязку. */
38799
- clientGroupId?: string | null;
38800
- /** Полный список ресурсных групп; [] очищает, группы не сливаются по id. */
38801
- resourceGroupList?: NonNullable<ServiceItemApi["resourceGroupList"]>;
38802
- /** Полная структура запрашиваемых сведений участника; null снимает. */
38803
- participateFieldRequirements?: NonNullable<ServiceItemApi["participateFieldRequirements"]> | null;
38804
- /** Полный список приложений; [] очищает. */
38805
- appendixList?: NonNullable<ServiceItemApi["appendixList"]>;
38806
- /** Полная конфигурация длительности сессии; null снимает. */
38807
- sessionDurationProperties?: NonNullable<ServiceItemApi["sessionDurationProperties"]> | null;
38808
- /** Автоматический check-in всех связанных событий; false выключает, null не принимается. */
38809
- checkInAllCases?: boolean;
38810
- /** Полный список шагов регистрации; [] очищает. */
38811
- stepDescriptionList?: NonNullable<ServiceItemApi["stepDescriptionList"]>;
38812
- /** Подпись основной кнопки; null/empty снимает. */
38813
- buttonName?: string | null;
38814
- /** Полная конфигурация доступа и минимального интервала check-in; null снимает. */
38815
- checkinPermission?: NonNullable<ServiceItemApi["checkinPermission"]> | null;
38816
- /** Полный список автоматических действий события; [] очищает. */
38817
- caseActionList?: NonNullable<ServiceItemApi["caseActionList"]>;
38818
- /** Полный список правил лояльности; [] очищает, транзакции SDK не вычисляет. */
38819
- loyaltyTransactionPropertiesList?: NonNullable<ServiceItemApi["loyaltyTransactionPropertiesList"]>;
38820
- };
38821
- type ServiceResourceStepUsageType = Extract<NonNullable<ResourceGroup["usageType"]>, "Specification" | "Rent" | "Sale">;
38822
- interface AddServiceResourceGroupInput {
38823
- key: string;
38824
- groupId?: string;
38825
- groupName: string;
38826
- minResources?: number | null;
38827
- maxResources?: number | null;
38828
- maxTotalAmount?: number | null;
38829
- quickFilterTags?: string[] | null;
38830
- bookingProperties?: BookingProperties | null;
38831
- }
38832
- interface AddServiceResourceStepInput extends AddServiceResourceGroupInput {
38833
- usageType: ServiceResourceStepUsageType;
38834
- stepOrder?: number;
38835
- description?: string | null;
38836
- autoChoiceResource?: boolean;
38837
- hiddenStep?: boolean;
38838
- hideResourceDetail?: boolean;
38839
- }
38840
- type AddServicePaymentGroupInput = AddServiceResourceGroupInput;
38841
- interface ServiceBuildResult {
38842
- body: ServiceItemForCreateOrUpdate;
38843
- resourceGroupIds: Record<string, string>;
38844
- }
38845
- type SessionDurationType = NonNullable<SessionDurationProperties["sessionDurationType"]>;
38846
- type TimeSelectionType = NonNullable<SessionDurationProperties["timeSelectionType"]>;
38847
- type StateManagementType = NonNullable<SessionDurationProperties["stateManagementType"]>;
38848
- type SessionPrecisionType = NonNullable<SessionDurationProperties["sessionPrecisionType"]>;
38849
- declare const SessionDurationTypeValues: {
38850
- readonly Unknown: "UnknownSessionDurationType";
38851
- readonly None: "SessionDurationNone";
38852
- readonly Custom: "Custom";
38853
- readonly Constant: "Constant";
38854
- readonly Sum: "Sum";
38855
- };
38856
- declare const TimeSelectionTypeValues: {
38857
- readonly Unknown: "UnknownTimeSelectionType";
38858
- readonly None: "TimeSelectionNone";
38859
- readonly Consumer: "Consumer";
38860
- readonly Executor: "Executor";
38861
- };
38862
- declare const StateManagementTypeValues: {
38863
- readonly Unknown: "UnknownStateManagementType";
38864
- readonly Auto: "Auto";
38865
- readonly Manual: "Manual";
38866
- };
38867
- declare const SessionPrecisionTypeValues: {
38868
- readonly Unknown: "UnknownSessionPrecisionType";
38869
- readonly None: "SessionPrecisionNone";
38870
- readonly DateTime: "DateTime";
38871
- readonly Date: "Date";
38872
- };
38873
-
38874
39563
  /**
38875
39564
  * Query-параметры `PUT .../{id}/timetable` (услуга, ресурс, календарь, контакт, карта лояльности).
38876
39565
  * Для **services** (и **loyaltycards** в OpenAPI) дополнительно поддерживаются `createDateFrom` / `createDateTo`.
@@ -38893,36 +39582,6 @@ type TimetableQueryOptions = {
38893
39582
  createDateTo?: Date | null;
38894
39583
  };
38895
39584
 
38896
- type CalendarItem = TorrowItemFromDto<CalendarItemDto>;
38897
- type CalendarItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CalendarItem>;
38898
- /** Полный интервал исключения календаря; существующие интервалы сохраняют свой rid. */
38899
- interface CalendarItemPatchTimeRange {
38900
- /** Идентификатор вложенного интервала (24 hex); для нового интервала используйте generateRid(). */
38901
- rid: string;
38902
- /** Начало интервала в Date SDK; в запросе сериализуется в ISO UTC. */
38903
- begin: Date;
38904
- /** Конец интервала в Date SDK; предметный порядок границ проверяет сервер. */
38905
- end: Date;
38906
- /** Подпись интервала; null/пропуск не создаёт текстовую подпись. */
38907
- name?: string | null;
38908
- }
38909
- /** Полная замена исключений; пропущенные внутри структуры списки не объединяются со снимком. */
38910
- interface CalendarItemPatchScheduleRangeExceptions {
38911
- /** Список заменённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
38912
- replacedTimeRanges?: CalendarItemPatchTimeRange[] | null;
38913
- /** Список исключённых интервалов; []/null/пропуск очищает этот список внутри новой структуры. */
38914
- excludedTimeRanges?: CalendarItemPatchTimeRange[] | null;
38915
- }
38916
- /** Частичное изменение календаря; общие name/image описаны в TorrowItemPatchFields. */
38917
- interface CalendarItemPatch extends TorrowItemPatchFields {
38918
- /** Описание; null или пустая строка очищает содержимое, пропуск сохраняет. */
38919
- description?: string | null;
38920
- /** Индекс вида int32; null очищает, 0 является реальным значением (ACK может нормализовать его в null). */
38921
- calendarViewIndex?: number | null;
38922
- /** Полная замена структуры исключений; null снимает структуру, {} очищает её списки. */
38923
- scheduleRangeExceptions?: CalendarItemPatchScheduleRangeExceptions | null;
38924
- }
38925
-
38926
39585
  /** CRUD + personal list + социальный слой для календарей (`CalendarItem`). `getById` использует `includeChildItems`. */
38927
39586
  declare class CalendarsFacade extends TorrowItemFacade<CalendarItem> {
38928
39587
  protected readonly itemObjectTypeCode: 1010;
@@ -38993,112 +39652,6 @@ declare class CalendarsFacade extends TorrowItemFacade<CalendarItem> {
38993
39652
  }): Promise<string>;
38994
39653
  }
38995
39654
 
38996
- type CaseItem = TorrowItemFromDto<CaseItemDto>;
38997
- /** Частичное изменение конфигурации события. Общие name/image — {@link TorrowItemPatchFields}; полная замена ценовой области — {@link ItemPricePatchFields}. Пропуск сохраняет поле, вложенные значения заменяются целиком. Состояние/участие/бронь изменяются отдельными операциями. */
38998
- type CaseItemPatch = TorrowItemPatchFields & ItemPricePatchFields & {
38999
- /** Начало события; Date, null снимает дату; календарную допустимость проверяет сервер. */
39000
- beginDate?: Date | null;
39001
- /** Окончание события; Date, null снимает дату. */
39002
- endDate?: Date | null;
39003
- /** Описание без trim; null/пустая строка очищают текст. */
39004
- description?: string | null;
39005
- /** Идентификатор места; непустая строка, null снимает ссылку. */
39006
- placeId?: string | null;
39007
- /** Текст места; null/пустая строка очищают текст. */
39008
- place?: string | null;
39009
- /** Вид планирования, кроме UnknownTimeType; ограничения перехода проверяет сервер. */
39010
- caseType?: Exclude<NonNullable<CaseItem["caseType"]>, "UnknownTimeType">;
39011
- /** Полная замена расписания; null снимает расписание, не пересчитывая повторения в SDK. */
39012
- schedule?: CaseItem["schedule"] | null;
39013
- /** Окно открытия регистрации в секундах; int32/null, null снимает ограничение. */
39014
- registrationOpen?: number | null;
39015
- /** Окно закрытия регистрации в секундах; int32/null, null снимает ограничение. */
39016
- registrationClose?: number | null;
39017
- /** Визитка события целиком; null запрещён, поля не нормализуются как Contact. */
39018
- visitCard?: CaseItem["visitCard"];
39019
- /** Срок удержания брони в секундах; int32/null, null снимает значение. */
39020
- bookingDuration?: number | null;
39021
- /** Максимальная вместимость; int32/null, ноль сохраняется. */
39022
- maxConsumerQuantity?: number | null;
39023
- /** Дополнительно зарезервированные вручную места; int32/null, отдельно от consumersCount. */
39024
- bookingConsumerQuantity?: number | null;
39025
- /** Процент загрузки исполнителя; конечное число/null, предметные лимиты проверяет сервер. */
39026
- executorUsagePercent?: number | null;
39027
- /** Признак доступности ресурсов; Unknown — серверный sentinel отсутствия; null запрещён. */
39028
- availableResources?: CaseItem["availableResources"];
39029
- /** Необходимость одобрения; null снимает настройку, false сохраняется. */
39030
- needApproval?: boolean | null;
39031
- /** Генерация одиночных событий; null снимает настройку без удаления пропущенного расписания. */
39032
- createSingleCases?: boolean | null;
39033
- /** Полная замена правил регистрации; null снимает правила. */
39034
- checkinPermission?: CaseItem["checkinPermission"] | null;
39035
- /** Скрытие события; null снимает настройку, false сохраняется. */
39036
- hidden?: boolean | null;
39037
- /** Приложения целиком; []/null очищают список. */
39038
- appendixList?: CaseItem["appendixList"];
39039
- /** Полная замена требований к участнику; null снимает требования. */
39040
- participateFieldRequirements?: CaseItem["participateFieldRequirements"] | null;
39041
- /** Группы ресурсов целиком; []/null очищают список, бронирование не выполняется SDK. */
39042
- resourceGroupList?: CaseItem["resourceGroupList"];
39043
- /** Приоритет обработки; конечное число/null, null снимает значение. */
39044
- priority?: number | null;
39045
- /** Идентификатор группы клиентов; непустая строка, null снимает ссылку. */
39046
- clientGroupId?: string | null;
39047
- /** Автоматизации целиком; []/null очищают список, исполнение остаётся серверу. */
39048
- caseActionList?: CaseItem["caseActionList"];
39049
- /** Правила начислений лояльности целиком; []/null очищают список. */
39050
- loyaltyTransactionPropertiesList?: CaseItem["loyaltyTransactionPropertiesList"];
39051
- };
39052
- type CreateCaseReq = NormalizedPublicity<CreateCaseReqDto>;
39053
- type AvailabilityTime = AvailabilityTimeDto;
39054
- type CaseParticipantType = CaseParticipantTypeDto;
39055
- /**
39056
- * Участник кейса. В сгенерированных типах только **`loyaltyCardId`**.
39057
- * Legacy `loyalityCardId` остаётся в `docs/torrow-swagger.json` (wire для старых клиентов),
39058
- * но вырезается обёрткой codegen (`scripts/openapi-codegen.mjs` → `stripLegacyWireAliases`).
39059
- * Сервер игнорирует опечатку при записи; в JSON ответов поле ещё может прийти — не использовать.
39060
- * Проверка против живого API — отдельно (integration / ручные тесты).
39061
- */
39062
- type CaseParticipant = CaseParticipantDto;
39063
- type CaseParticipantView = NormalizedPublicity<CaseParticipantViewDto>;
39064
- type CaseParticipantFields = CaseParticipantFieldsDto;
39065
- type GetCaseParticipationCountResp = GetCaseParticipationCountRespDto;
39066
- type CheckInReq = CheckInReqDto;
39067
- type CheckInProps = CheckInPropsDto;
39068
- type BookResourcesForMeReq = BookResourcesForMeReqDto;
39069
- type BookResourcesForOthersReq = BookResourcesForOthersReqDto;
39070
- type ChangeMoneyReceiveReq = ChangeMoneyReceiveReqDto;
39071
- type ApproveCaseParticipationReq = ApproveCaseParticipationReqDto;
39072
- type CancelCaseParticipationReq = CancelCaseParticipationReqDto;
39073
- type PatchCaseReq = PatchCaseReqDto;
39074
- type CaseState = CaseItem["caseState"];
39075
- type CaseType = CaseItem["caseType"];
39076
- declare const CaseStateValues: {
39077
- readonly Unknown: "UnknownCaseState";
39078
- readonly Verifying: "Verifying";
39079
- readonly Waiting: "Waiting";
39080
- readonly Processing: "Processing";
39081
- readonly Preparing: "Preparing";
39082
- readonly Completed: "Completed";
39083
- readonly Closed: "Closed";
39084
- readonly Rejected: "Rejected";
39085
- readonly Canceled: "Canceled";
39086
- readonly TimeControlled: "TimeControlled";
39087
- readonly TaskNotCompleted: "TaskNotCompleted";
39088
- readonly TaskCompleted: "TaskCompleted";
39089
- };
39090
- declare const CaseTypeValues: {
39091
- readonly Unknown: "UnknownTimeType";
39092
- readonly Time: "Time";
39093
- readonly RepeatedTime: "RepeatedTime";
39094
- readonly Today: "Today";
39095
- readonly Week: "Week";
39096
- readonly Later: "Later";
39097
- readonly Date: "Date";
39098
- readonly State: "State";
39099
- };
39100
- type CaseItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<CaseItem>;
39101
-
39102
39655
  /** Опции `GET /api/v1/cases/{torrowId}` — у `getCase` и `CasesFacade.getById`. */
39103
39656
  interface GetCaseOptions {
39104
39657
  profileId?: string | null;
@@ -39398,16 +39951,6 @@ declare class ContactsFacade extends TorrowItemFacade<ContactItem> {
39398
39951
  }): Promise<TorrowObject | undefined>;
39399
39952
  }
39400
39953
 
39401
- type ContextItem = TorrowItemFromDto<ContextItemDto>;
39402
- type ContextItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ContextItem>;
39403
- /** Частичное изменение: name/image — общие поля; color/description заменяются целиком. Остальные аспекты имеют отдельные методы. */
39404
- type ContextItemPatch = TorrowItemPatchFields & {
39405
- /** Цвет #RRGGBB; пропуск сохраняет текущий; null/empty не поддерживаются сервером. */
39406
- color?: string;
39407
- /** Описание; null либо empty очищает содержимое, пропуск сохраняет. */
39408
- description?: string | null;
39409
- };
39410
-
39411
39954
  /** CRUD + personal list + социальный слой для контекстов (`ContextItem`). `POST` принимает только опциональный `profileId`. */
39412
39955
  declare class ContextsFacade extends TorrowItemFacade<ContextItem> {
39413
39956
  protected readonly itemObjectTypeCode: 1001;
@@ -39569,208 +40112,6 @@ declare class RelationsFacade {
39569
40112
  }): Promise<Participation>;
39570
40113
  }
39571
40114
 
39572
- /** Провайдер оплаты из OpenAPI; строковый ввод и неизвестный серверный sentinel сохраняются. */
39573
- type PaymentProviderType = OpenApiSchemas["PaymentProviderType"];
39574
- /** Именованные значения общего wire-контракта провайдера оплаты. */
39575
- declare enum PaymentProviderTypeValues {
39576
- /** Неизвестный провайдер серверного контракта. */
39577
- Unknown = "UnknownPaymentProviderType",
39578
- /** Наличный расчёт. */
39579
- Cash = "Cash",
39580
- /** Внешняя ссылка оплаты. */
39581
- CustomLink = "CustomLink",
39582
- /** Интеграция YooMoney. */
39583
- YooMoney = "YooMoney",
39584
- /** Интеграция Qiwi P2P. */
39585
- QiwiP2P = "QiwiP2P",
39586
- /** Серверная ветвь Qiwi B2B. */
39587
- QiwiB2B = "QiwiB2B",
39588
- /** Интеграция YooKassa. */
39589
- YooKassa = "YooKassa",
39590
- /** Интеграция Сбербанка. */
39591
- Sberbank = "Sberbank",
39592
- /** Интеграция Уралсиб. */
39593
- Uralsib = "Uralsib",
39594
- /** Интеграция Альфа-Банка. */
39595
- Alfabank = "Alfabank",
39596
- /** Интеграция RoboKassa. */
39597
- RoboKassa = "RoboKassa",
39598
- /** Интеграция PayKeeper. */
39599
- PayKeeper = "PayKeeper",
39600
- /** Серверная ветвь GateLine. */
39601
- GateLine = "GateLine",
39602
- /** Интеграция Tinkoff. */
39603
- Tinkoff = "Tinkoff",
39604
- /** Интеграция Prodamus. */
39605
- Prodamus = "Prodamus",
39606
- /** Тестовый провайдер. */
39607
- Mock = "MockPaymentProvider"
39608
- }
39609
-
39610
- /** Вид условия использования ресурса из OpenAPI, включая неизвестный серверный sentinel. */
39611
- type UsageConditionType = OpenApiSchemas["UsageConditionType"];
39612
- /** Полный wire-набор для валидации patch и справочника; публичное подмножество задано отдельно. */
39613
- declare enum UsageConditionTypeWireValues {
39614
- /** Сервер не определил вид условия. */
39615
- Unknown = "UnknownUsageConditionType",
39616
- /** Условие использования отсутствует. */
39617
- None = "None",
39618
- /** Указанные ресурсы исключают использование текущего. */
39619
- Exclusion = "Exclusion",
39620
- /** Указанные ресурсы используются дополнительно к текущему. */
39621
- Additional = "Additional"
39622
- }
39623
- /** Совместимый публичный набор: три прежних ключа с типами строковых литералов. */
39624
- declare const UsageConditionTypeValues: {
39625
- /** Условие использования отсутствует. */
39626
- readonly None: "None";
39627
- /** Исключающее условие использования. */
39628
- readonly Exclusion: "Exclusion";
39629
- /** Дополнительное условие использования. */
39630
- readonly Additional: "Additional";
39631
- };
39632
-
39633
- /** Общий текст конфигурации оплаты; назначение совпадает с серверным PaymentParameters. */
39634
- interface PaymentPatchText {
39635
- /** Текст оплаты; null/empty снимает текстовую часть. */
39636
- text?: string | null;
39637
- /** Сообщение до оплаты; null/empty снимает его. */
39638
- beforePayMessage?: string | null;
39639
- /** Сообщение после оплаты; null/empty снимает его. */
39640
- afterPayMessage?: string | null;
39641
- }
39642
- /** Предметные параметры выбранного провайдера. */
39643
- type PaymentPatchParameters<TFields extends object = Record<never, never>> = PaymentPatchText & TFields;
39644
- /** Общие атрибуты RBS банков; значения проверяет сервер/провайдер. */
39645
- interface BankPatchFields {
39646
- /** Имя пользователя интеграции банка. */
39647
- username: string;
39648
- /** Пароль интеграции; не выводить в диагностике. */
39649
- password: string;
39650
- /** Использование тестовой среды; false сохраняется без подстановки defaults SDK. */
39651
- isTest?: boolean;
39652
- }
39653
- /** Атрибуты провайдера с URL и парой доступа. */
39654
- interface PaykeeperPatchFields extends BankPatchFields {
39655
- /** URL интеграции провайдера, передаётся без нормализации SDK. */
39656
- url: string;
39657
- }
39658
- /** Настройки оплаты конкретного провайдера; numeratorId/waitForConfirmation наследуют общий wire-смысл. */
39659
- interface PaymentPatchConfigurationBase<TProvider extends PaymentProviderType> {
39660
- /** Серверный провайдер; строковый тип выводится из общего enum, сохраняя ввод литерала и связь с параметрами. */
39661
- paymentProviderType: `${TProvider}`;
39662
- /** Связанный нумератор оплаты; null снимает ссылку. */
39663
- numeratorId?: string | null;
39664
- /** Ожидать подтверждения; false не считается пропуском, null снимает значение. */
39665
- waitForConfirmation?: boolean | null;
39666
- }
39667
- /** Обязательность параметров следует безусловным cast/ForString в серверном mapper. */
39668
- type PaymentPatchConfiguration<TProvider extends PaymentProviderType, TParameters, TRequired extends boolean = false> = PaymentPatchConfigurationBase<TProvider> & (TRequired extends true ? {
39669
- /** Полная структура параметров с технически обязательными строками; их действительность проверяет сервер. */
39670
- parameters: TParameters;
39671
- } : {
39672
- /** Guarded серверная ветвь допускает отсутствие/null; переданный объект имеет собственные обязательные поля. */
39673
- parameters?: TParameters | null;
39674
- });
39675
- /** Полиморфная конфигурация Resource payment patch; SDK не выполняет платежи и не проверяет credentials. */
39676
- type ResourcePaymentPatchProperties = PaymentPatchConfiguration<PaymentProviderTypeValues.Cash, PaymentPatchParameters> | PaymentPatchConfiguration<PaymentProviderTypeValues.CustomLink, PaymentPatchParameters<{
39677
- /** URL внешней формы оплаты. */ url: string;
39678
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooMoney, PaymentPatchParameters<{
39679
- /** Идентификатор кошелька. */ accountId: string;
39680
- /** Секрет проверки уведомлений; чувствительное значение. */ notificationSecret: string;
39681
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.QiwiP2P, PaymentPatchParameters<{
39682
- /** Публичный ключ интеграции. */ publicKey: string;
39683
- /** Закрытый ключ интеграции; чувствительное значение. */ privateKey: string;
39684
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.YooKassa, PaymentPatchParameters<{
39685
- /** Идентификатор магазина. */ shopId: string;
39686
- /** Секретный ключ магазина. */ secretKey: string;
39687
- /** Серверное обозначение системы налогообложения. */ taxation: string;
39688
- }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Sberbank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Alfabank, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Uralsib, PaymentPatchParameters<BankPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.RoboKassa, PaymentPatchParameters<{
39689
- /** Имя магазина. */ shopName: string;
39690
- /** Первый пароль интеграции; чувствительное значение. */ password1: string;
39691
- /** Второй пароль интеграции; чувствительное значение. */ password2: string;
39692
- /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
39693
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.PayKeeper, PaymentPatchParameters<PaykeeperPatchFields>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Prodamus, PaymentPatchParameters<{
39694
- /** Секретный ключ интеграции. */ secretKey: string;
39695
- /** URL формы оплаты. */ url: string;
39696
- /** Тестовая среда; false передаётся явно. */ isTest?: boolean;
39697
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Tinkoff, PaymentPatchParameters<{
39698
- /** Терминал интеграции. */ terminal: string;
39699
- /** Пароль терминала; чувствительное значение. */ password: string;
39700
- /** Серверное обозначение системы налогообложения. */ taxation: string;
39701
- /** Параметр распределения платежа; SDK не интерпретирует строку. */ split?: string;
39702
- }>, true> | PaymentPatchConfiguration<PaymentProviderTypeValues.Mock, PaymentPatchParameters<{
39703
- /** Базовый URL перенаправления тестового провайдера. */ redirectBaseUrl?: string;
39704
- /** Тестовый код ошибки int32; wire-опечатка Responce сохранена. */ errorResponceCode?: number | null;
39705
- /** Отложенное создание тестового платежа; Date SDK, null снимает дату. */ createAfter?: Date | null;
39706
- }>> | PaymentPatchConfiguration<PaymentProviderTypeValues.Unknown | PaymentProviderTypeValues.QiwiB2B | PaymentProviderTypeValues.GateLine, PaymentPatchText>;
39707
- /** Предметные параметры всех ветвей payment patch; paymentProviderType выбирает класс, text/beforePayMessage/afterPayMessage — общие сообщения, остальные атрибуты относятся к выбранному провайдеру в ResourcePaymentPatchProperties. */
39708
- type ResourcePaymentPatchParameters = NonNullable<ResourcePaymentPatchProperties["parameters"]>;
39709
-
39710
- type ResourceItemApi = NormalizedPublicity<ResourceItemApiDto>;
39711
- type ServiceDescription = NonNullable<ResourceItemApi["serviceDescriptions"]>[number];
39712
- type UsageCondition = NonNullable<ResourceItemApi["usageCondition"]>;
39713
- /** Дополнительные и исключающие условия; отсутствие условия и неизвестный sentinel сюда не входят. */
39714
- type ResourceUsageConditionType = Exclude<UsageConditionType, `${UsageConditionTypeWireValues.Unknown | UsageConditionTypeWireValues.None}`>;
39715
- type WorkloadPeriod = WorkloadPeriodDto;
39716
- type PickOrderReq = PickOrderReqDto;
39717
- type PickOrderResp = NormalizedPublicity<PickOrderRespDto>;
39718
- type ReturnOrderReq = ReturnOrderReqDto;
39719
- type ReturnOrderResp = NormalizedPublicity<ReturnOrderRespDto>;
39720
- type ResourceItem = TorrowItemFromDto<ResourceItemApi> & {
39721
- behaviorSettings?: ResourceBehaviorSettings;
39722
- };
39723
- type UsageType = ResourceItemApi["usageType"];
39724
- declare const UsageTypeValues: {
39725
- readonly Unknown: "UnknownUsageType";
39726
- readonly Specification: "Specification";
39727
- readonly Rent: "Rent";
39728
- readonly Sale: "Sale";
39729
- readonly Payment: "Payment";
39730
- readonly Ticket: "Ticket";
39731
- };
39732
- type ResourceItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<ResourceItem>;
39733
- /** Подтверждённые обычные поля root Resource update; name/image наследуют общий контракт. */
39734
- interface ResourceItemPatchFields extends TorrowItemPatchFields {
39735
- /** Описание ресурса; null/empty очищает содержимое, пропуск сохраняет. */
39736
- description?: string | null;
39737
- /** Идентификатор связанного элемента; null снимает связь. Это не target ID самого patch. */
39738
- itemId?: string | null;
39739
- /** Идентификатор родительского ресурса; null снимает связь. */
39740
- parentResourceId?: string | null;
39741
- /** Идентификатор связанного расписания; null снимает связь. */
39742
- timetableId?: string | null;
39743
- /** Полная замена расписания с Date SDK; null снимает расписание. */
39744
- schedule?: NonNullable<ResourceItemApi["schedule"]> | null;
39745
- /** Серверный способ использования; UnknownUsageType нормализует сервер, create default не применяется. */
39746
- usageType?: NonNullable<ResourceItemApi["usageType"]>;
39747
- /** Полная замена связей с услугами; [] снимает список, предметные ограничения проверяет сервер. */
39748
- serviceDescriptions?: NonNullable<ResourceItemApi["serviceDescriptions"]>;
39749
- /** Пользовательский код; null/empty очищает содержимое. */
39750
- code?: string | null;
39751
- /** Длительность/расчётная единица в секундах (int32); null снимает значение. */
39752
- duration?: number | null;
39753
- /** Полная замена количественных свойств, включая inventoryDate Date; null снимает структуру. */
39754
- amountProperties?: NonNullable<ResourceItemApi["amountProperties"]> | null;
39755
- /** Полная замена условий использования; null снимает структуру. */
39756
- usageCondition?: NonNullable<ResourceItemApi["usageCondition"]> | null;
39757
- /** Полная замена приложений с Date SDK; [] снимает список. */
39758
- appendixList?: NonNullable<ResourceItemApi["appendixList"]>;
39759
- /** Полная замена конфигурации оплаты; null снимает её, платежи не выполняются. */
39760
- paymentProperties?: ResourcePaymentPatchProperties | null;
39761
- /** Полная замена настроек операций лояльности; [] снимает список, баланс не пересчитывается SDK. */
39762
- loyaltyTransactionPropertiesList?: NonNullable<ResourceItemApi["loyaltyTransactionPropertiesList"]>;
39763
- }
39764
- /** Частичное изменение ресурса с одной из взаимоисключающих форм цены ItemPricePatchFields. */
39765
- type ResourceItemPatch = ResourceItemPatchFields & ItemPricePatchFields;
39766
- interface ResourceServiceBindingOptions {
39767
- usageAmount?: number | null;
39768
- sortIndex?: number | null;
39769
- }
39770
- interface ResourceBuildResult {
39771
- body: ResourceItemForCreateOrUpdate;
39772
- }
39773
-
39774
40115
  /**
39775
40116
  * CRUD + personal list + социальный слой для **Resource** (`ResourceItem`, путь `/api/v1/resources`).
39776
40117
  * Свойство фасада — `client.resourceItems`.
@@ -40018,7 +40359,7 @@ declare class ServicesFacade extends TorrowItemFacade<ServiceItem> {
40018
40359
  signal?: AbortSignal;
40019
40360
  }): Promise<ServiceItem[]>;
40020
40361
  /** `POST /api/v1/services/{serviceId}/session` — создать сессию записи (тело `CaseItem`). */
40021
- createSession(serviceId: string, body: CaseItem, options?: {
40362
+ createSession(serviceId: string, body: CaseItemWire, options?: {
40022
40363
  profileId?: string | null;
40023
40364
  signal?: AbortSignal;
40024
40365
  }): Promise<CaseItem>;
@@ -40209,9 +40550,9 @@ declare class AuthFacade {
40209
40550
  }
40210
40551
 
40211
40552
  /** @see components.schemas.ProfileListResp */
40212
- type ProfileListResp = NormalizedPublicity<ProfileListRespDto>;
40553
+ type ProfileListResp = ProfileListRespRead;
40213
40554
  /** @see components.schemas.RemoveProfileResp */
40214
- type RemoveProfileResp = NormalizedPublicity<RemoveProfileRespDto>;
40555
+ type RemoveProfileResp = RemoveProfileRespRead;
40215
40556
  /** @see components.schemas.UpdateProfilePropertiesResp */
40216
40557
  type UpdateProfilePropertiesResp = UpdateProfilePropertiesRespDto;
40217
40558
  /** @see components.schemas.ProfileProperties */
@@ -40326,15 +40667,15 @@ declare function isTorrowItemType(value: string): value is TorrowItemType;
40326
40667
 
40327
40668
  /** Представление узла в mind map / персональном списке под родителем — тип зависит от `TorrowItemType`. */
40328
40669
  type TorrowItemViewByTypeMap = {
40329
- Contact: NormalizedPublicity<OpenApiSchemas["ContactView"]>;
40330
- Note: NormalizedPublicity<OpenApiSchemas["NoteView"]>;
40331
- Context: NormalizedPublicity<OpenApiSchemas["ContextView"]>;
40332
- Resource: NormalizedPublicity<OpenApiSchemas["ResourceView"]>;
40333
- Service: NormalizedPublicity<OpenApiSchemas["ServiceView"]>;
40334
- Case: NormalizedPublicity<OpenApiSchemas["CaseView"]>;
40335
- Calendar: NormalizedPublicity<OpenApiSchemas["CalendarView"]>;
40336
- LoyaltyCard: NormalizedPublicity<OpenApiSchemas["LoyaltyCardView"]>;
40337
- LoyaltySystem: NormalizedPublicity<OpenApiSchemas["LoyaltySystemView"]>;
40670
+ Contact: ContactViewRead;
40671
+ Note: NoteViewRead;
40672
+ Context: ContextViewRead;
40673
+ Resource: ResourceViewRead;
40674
+ Service: ServiceViewRead;
40675
+ Case: CaseViewRead;
40676
+ Calendar: CalendarViewRead;
40677
+ LoyaltyCard: LoyaltyCardViewRead;
40678
+ LoyaltySystem: LoyaltySystemViewRead;
40338
40679
  };
40339
40680
  type TorrowItemView = TorrowItemViewByTypeMap[TorrowItemType];
40340
40681
  type ViewListQuery = {
@@ -40361,16 +40702,16 @@ type ViewOrderInput = {
40361
40702
  order: number;
40362
40703
  };
40363
40704
  type ViewInfo = ViewInfoDto;
40364
- type ContactView = NormalizedPublicity<ContactViewDto>;
40365
- type NoteView = NormalizedPublicity<NoteViewDto>;
40366
- type ContextView = NormalizedPublicity<ContextViewDto>;
40705
+ type ContactView = ContactViewRead;
40706
+ type NoteView = NoteViewRead;
40707
+ type ContextView = ContextViewRead;
40367
40708
  /** Представление ресурса в mind map (та же схема `ResourceView`, что в поиске ресурсов услуги). */
40368
- type ResourceMindMapView = NormalizedPublicity<ResourceMindMapViewDto>;
40369
- type ServiceView = NormalizedPublicity<ServiceViewDto>;
40370
- type CaseView = NormalizedPublicity<CaseViewDto>;
40371
- type CalendarView = NormalizedPublicity<CalendarViewDto>;
40372
- type LoyaltyCardView = NormalizedPublicity<LoyaltyCardViewDto>;
40373
- type LoyaltySystemView = NormalizedPublicity<LoyaltySystemViewDto>;
40709
+ type ResourceMindMapView = ResourceViewRead;
40710
+ type ServiceView = ServiceViewRead;
40711
+ type CaseView = CaseViewRead;
40712
+ type CalendarView = CalendarViewRead;
40713
+ type LoyaltyCardView = LoyaltyCardViewRead;
40714
+ type LoyaltySystemView = LoyaltySystemViewRead;
40374
40715
 
40375
40716
  /** Закреплённые представления (`views/pinned`). */
40376
40717
  declare class PinnedViewsFacade {
@@ -40627,7 +40968,7 @@ declare class SearchFacade {
40627
40968
  }): Promise<ServiceView[]>;
40628
40969
  }
40629
40970
 
40630
- type ActionHistoryInfo = NormalizedPublicity<ActionHistoryInfoDto>;
40971
+ type ActionHistoryInfo = ActionHistoryInfoRead;
40631
40972
  type ActionHistoryType = ActionHistoryTypeDto;
40632
40973
  type ActionHistoryState = ActionHistoryStateDto;
40633
40974
  /**
@@ -40685,12 +41026,12 @@ declare class AccountingTransactionsFacade {
40685
41026
  private readonly http;
40686
41027
  constructor(http: HttpClient);
40687
41028
  /** `POST /api/v1/accountingtransactions` */
40688
- create(transaction: AccountingTransaction, options?: {
41029
+ create(transaction: NormalizedPublicity<AccountingTransactionDto>, options?: {
40689
41030
  securityToken?: string | null;
40690
41031
  signal?: AbortSignal;
40691
41032
  }): Promise<AccountingTransaction>;
40692
41033
  /** `PUT /api/v1/accountingtransactions/{transaction.id}` */
40693
- update(transaction: AccountingTransaction, options?: {
41034
+ update(transaction: NormalizedPublicity<AccountingTransactionDto>, options?: {
40694
41035
  checkVersion?: boolean | null;
40695
41036
  isNeedAnnouncement?: boolean | null;
40696
41037
  securityToken?: string | null;
@@ -40725,7 +41066,7 @@ declare class AccountingTransactionsFacade {
40725
41066
  }): Promise<AccountingTransaction[]>;
40726
41067
  }
40727
41068
 
40728
- type AnnouncementInfo = NormalizedPublicity<AnnouncementInfoDto>;
41069
+ type AnnouncementInfo = AnnouncementInfoRead;
40729
41070
  type AnnouncementState = AnnouncementStateDto;
40730
41071
  type UpdateAnnouncementStateReq = UpdateAnnouncementStateReqDto;
40731
41072
  /**
@@ -40766,7 +41107,7 @@ declare class AnnouncementsFacade {
40766
41107
  }
40767
41108
 
40768
41109
  type ExportRequest = ExportRequestDto;
40769
- type ExportGraph = NormalizedPublicity<ExportGraphDto>;
41110
+ type ExportGraph = ExportGraphRead;
40770
41111
  type ImportByFileRequest = NormalizedPublicity<ImportByFileRequestDto>;
40771
41112
  type ImportByUniqueNameRequest = ImportByUniqueNameRequestDto;
40772
41113
 
@@ -40982,25 +41323,6 @@ type LoyaltyPersonalListQuery = {
40982
41323
  /** Для **`loyaltysystems/personallist`** (без `includeBalance` в OpenAPI). */
40983
41324
  type LoyaltySystemPersonalListQuery = Omit<LoyaltyPersonalListQuery, "includeBalance">;
40984
41325
 
40985
- type LoyaltyCardItem = TorrowItemFromDto<LoyaltyCardItemDto>;
40986
- type CreateLoyaltyCardSubscriptionReq = CreateLoyaltyCardSubscriptionReqDto;
40987
- type LoyaltyCardSubscription = LoyaltyCardSubscriptionDto;
40988
- type LoyaltyCardItemForCreateOrUpdate = TorrowItemForCreateOrUpdate<LoyaltyCardItem>;
40989
-
40990
- type LoyaltyTransactionsQuery = {
40991
- state?: AccountingTransactionState | null;
40992
- transactionDateFrom?: Date | null;
40993
- transactionDateTo?: Date | null;
40994
- take?: number | null;
40995
- skip?: number | null;
40996
- lmFrom?: Date | null;
40997
- lmTo?: Date | null;
40998
- cdFrom?: Date | null;
40999
- cdTo?: Date | null;
41000
- includeDeleted?: boolean | null;
41001
- sort?: ObjectSortCondition | null;
41002
- };
41003
-
41004
41326
  /**
41005
41327
  * Программы лояльности (**OpenAPI** **LoyaltySystem**): CRUD, персональный список, выпуск карты, статистика.
41006
41328
  * Общий item-слой — {@link TorrowItemCoreFacade} (без эндпоинтов, которых нет в Swagger loyaltysystems).
@@ -41538,9 +41860,9 @@ declare class IntegrationsFacade {
41538
41860
  delete(integrationId: string, options?: TorrowOptions): Promise<number>;
41539
41861
  }
41540
41862
 
41541
- type Feedback = NormalizedPublicity<FeedbackDto>;
41542
- type ItemFeedback = NormalizedPublicity<ItemFeedbackDto>;
41543
- type UserFeedback = NormalizedPublicity<UserFeedbackDto>;
41863
+ type Feedback = FeedbackRead;
41864
+ type ItemFeedback = ItemFeedbackRead;
41865
+ type UserFeedback = UserFeedbackRead;
41544
41866
 
41545
41867
  /**
41546
41868
  * Кросс-доменные операции **Item** (отзывы, шаринг-сессия, uniquename).
@@ -41999,7 +42321,8 @@ declare class ServiceBuilder {
41999
42321
  private readonly addedGroups;
42000
42322
  private constructor();
42001
42323
  static create(body: ServiceItemForCreateOrUpdate): ServiceBuilder;
42002
- static from(service: ServiceItem): ServiceBuilder;
42324
+ /** Принимает исходную конфигурацию, сохраняя nullable write-поля независимо от read-проекции. */
42325
+ static from(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">): ServiceBuilder;
42003
42326
  withType(type: KnownServiceType, options?: ServiceSessionDurationOptions): this;
42004
42327
  withSessionDurationProperties(properties: SessionDurationProperties): this;
42005
42328
  addResourceStep(input: AddServiceResourceStepInput): this;
@@ -42049,7 +42372,8 @@ declare const TimeStepUiModeValues: {
42049
42372
  readonly SelectTime: "selectTime";
42050
42373
  };
42051
42374
  type TimeStepUiMode = (typeof TimeStepUiModeValues)[keyof typeof TimeStepUiModeValues];
42052
- declare function sortStepDescriptionsByOrder(list: ServiceItem["stepDescriptionList"]): StepDescription[];
42375
+ /** Сортирует переданный список; nullable ввод сохраняется независимо от суженного read-контракта карточки. */
42376
+ declare function sortStepDescriptionsByOrder(list: ServiceItemApi["stepDescriptionList"]): StepDescription[];
42053
42377
  declare function getStepParameter(step: StepDescription, parameterName: string): string | undefined;
42054
42378
  declare function getResourceGroupIdFromStep(step: StepDescription): string | undefined;
42055
42379
  declare function isStepFlag(step: StepDescription, parameterName: string): boolean;
@@ -42093,7 +42417,7 @@ type BookingWizardExpandedStep = {
42093
42417
  * Шаг **Payment** в мобильном FSM обрабатывается отдельно (`choosePaymentMethod`); здесь он отражает
42094
42418
  * порядок в `stepDescriptionList` для headless-сценариев и агентов.
42095
42419
  */
42096
- declare function expandBookingWizardSteps(service: ServiceItem): BookingWizardExpandedStep[];
42420
+ declare function expandBookingWizardSteps(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">): BookingWizardExpandedStep[];
42097
42421
 
42098
42422
  type FreeCheckInSlot = WorkloadPeriod & {
42099
42423
  from: Date;
@@ -42125,13 +42449,13 @@ declare function isServiceOrderConflictError(error: unknown): error is TorrowSdk
42125
42449
  */
42126
42450
  declare function normalizePaymentUrl(url: string | null | undefined): string | undefined;
42127
42451
  /** Сырое значение из DTO без нормализации. */
42128
- declare function getTicketPaymentUrlRaw(caseItem: CaseItem | undefined | null): string | undefined;
42452
+ declare function getTicketPaymentUrlRaw(caseItem: CaseItemWire | undefined | null): string | undefined;
42129
42453
  /**
42130
42454
  * URL оплаты из **`CaseItem.personalInfo.ticketResource.ticketProperties.paymentUrl`**
42131
42455
  * (вид владельца/участника после `createOrder` + загрузка кейса).
42132
42456
  * Для гостя с токеном — тот же путь после `GET .../cases/{id}` с `securityToken` / `caseParticipantId`.
42133
42457
  */
42134
- declare function getTicketPaymentUrl(caseItem: CaseItem | undefined | null): string | undefined;
42458
+ declare function getTicketPaymentUrl(caseItem: CaseItemWire | undefined | null): string | undefined;
42135
42459
 
42136
42460
  /**
42137
42461
  * Локально собирает тело ресурса и его связи с услугами.
@@ -42141,8 +42465,9 @@ declare class ResourceBuilder {
42141
42465
  private draft;
42142
42466
  private constructor();
42143
42467
  static create(body: ResourceItemForCreateOrUpdate): ResourceBuilder;
42144
- static from(resource: ResourceItem): ResourceBuilder;
42145
- attachToService(service: ServiceItem, resourceGroupId: string, options?: ResourceServiceBindingOptions): this;
42468
+ /** Исходная конфигурация сохраняет допустимые nullable write-поля независимо от read-проекции. */
42469
+ static from(resource: ResourceItemApi & Pick<ResourceItem, "behaviorSettings">): ResourceBuilder;
42470
+ attachToService(service: ServiceItemApi & Pick<ServiceItem, "behaviorSettings">, resourceGroupId: string, options?: ResourceServiceBindingOptions): this;
42146
42471
  detachFromService(serviceId: string, resourceGroupId: string): this;
42147
42472
  /** Задаёт зависимость или исключение ресурса по id ранее выбранных ресурсов. */
42148
42473
  setUsageCondition(type: ResourceUsageConditionType, conditionIds: readonly string[]): this;