@aepstore-dev/contracts 1.40.0 → 1.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/gen/activity.d.ts +170 -0
  2. package/dist/gen/activity.js +62 -0
  3. package/dist/gen/auth.d.ts +220 -0
  4. package/dist/gen/auth.js +49 -0
  5. package/dist/gen/mail.d.ts +70 -0
  6. package/dist/gen/mail.js +34 -0
  7. package/dist/gen/payments.d.ts +603 -0
  8. package/dist/gen/payments.js +57 -0
  9. package/dist/gen/products.d.ts +401 -0
  10. package/dist/gen/products.js +80 -0
  11. package/dist/gen/support.d.ts +139 -0
  12. package/dist/gen/support.js +38 -0
  13. package/dist/gen/taxonomy.d.ts +109 -0
  14. package/dist/gen/taxonomy.js +36 -0
  15. package/dist/gen/upload.d.ts +193 -0
  16. package/dist/gen/upload.js +54 -0
  17. package/dist/gen/users.d.ts +639 -0
  18. package/dist/gen/users.js +84 -0
  19. package/package.json +44 -35
  20. package/proto/activity.proto +200 -200
  21. package/proto/auth.proto +189 -183
  22. package/proto/mail.proto +54 -54
  23. package/proto/payments.proto +407 -407
  24. package/proto/products.proto +402 -402
  25. package/proto/support.proto +118 -118
  26. package/proto/taxonomy.proto +105 -105
  27. package/proto/upload.proto +171 -171
  28. package/proto/users.proto +660 -660
  29. package/gen/activity.ts +0 -270
  30. package/gen/auth.ts +0 -309
  31. package/gen/mail.ts +0 -121
  32. package/gen/payments.ts +0 -828
  33. package/gen/products.ts +0 -579
  34. package/gen/support.ts +0 -220
  35. package/gen/taxonomy.ts +0 -185
  36. package/gen/upload.ts +0 -287
  37. package/gen/users.ts +0 -929
  38. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  39. /package/dist/{index.js → src/index.js} +0 -0
  40. /package/dist/{proto → src/proto}/index.d.ts +0 -0
  41. /package/dist/{proto → src/proto}/index.js +0 -0
  42. /package/dist/{proto → src/proto}/paths.d.ts +0 -0
  43. /package/dist/{proto → src/proto}/paths.js +0 -0
@@ -0,0 +1,639 @@
1
+ import { Observable } from "rxjs";
2
+ export declare const protobufPackage = "users.v1";
3
+ export declare enum UserFieldsType {
4
+ USER_FIELDS_TYPE_UNSPECIFIED = 0,
5
+ USER_FIELDS_TYPE_VIDEOS = 1,
6
+ USER_FIELDS_TYPE_PRODUCTS = 2,
7
+ USER_FIELDS_TYPE_SUBSCRIPTIONS = 3,
8
+ USER_FIELDS_TYPE_SUBSCRIBERS = 4,
9
+ UNRECOGNIZED = -1
10
+ }
11
+ /** Periods mirror PremiumPeriod enum in schema.prisma. */
12
+ export declare enum PremiumPeriod {
13
+ PREMIUM_PERIOD_UNSPECIFIED = 0,
14
+ PREMIUM_PERIOD_MONTH_1 = 1,
15
+ PREMIUM_PERIOD_MONTH_3 = 2,
16
+ PREMIUM_PERIOD_MONTH_6 = 3,
17
+ PREMIUM_PERIOD_MONTH_12 = 4,
18
+ UNRECOGNIZED = -1
19
+ }
20
+ export interface Ok {
21
+ ok: boolean;
22
+ }
23
+ export interface User {
24
+ id: string;
25
+ email: string;
26
+ username: string;
27
+ avatarUrl: string;
28
+ roles: string[];
29
+ /** primary role for backwards compat */
30
+ role: string;
31
+ /** ISO 8601 */
32
+ createdAt: string;
33
+ updatedAt: string;
34
+ isBanned: boolean;
35
+ /** ISO 8601, empty = permanent/none */
36
+ bannedUntil: string;
37
+ banReason: string;
38
+ }
39
+ export interface BanUserRequest {
40
+ adminId: string;
41
+ userId: string;
42
+ reason: string;
43
+ /** ISO 8601; empty = permanent ban */
44
+ until: string;
45
+ }
46
+ export interface UnbanUserRequest {
47
+ adminId: string;
48
+ userId: string;
49
+ }
50
+ export interface Country {
51
+ id: string;
52
+ code: string;
53
+ name: string;
54
+ }
55
+ export interface SocialMedia {
56
+ id: string;
57
+ platform: string;
58
+ url: string;
59
+ }
60
+ export interface CreateSocialMedia {
61
+ platform: string;
62
+ url: string;
63
+ }
64
+ export interface ProductUser {
65
+ id: string;
66
+ username: string;
67
+ avatarUrl: string;
68
+ }
69
+ export interface Category {
70
+ id: string;
71
+ name: string;
72
+ }
73
+ export interface Product {
74
+ id: string;
75
+ name: string;
76
+ description: string;
77
+ /** Decimal as string (D7) */
78
+ price: string;
79
+ createdAt: string;
80
+ updatedAt: string;
81
+ /** profile-card preview fields */
82
+ preview: string;
83
+ /** Decimal as string */
84
+ finalPrice: string;
85
+ /** number as string */
86
+ averageRating: string;
87
+ status: string;
88
+ /**
89
+ * Author of the product (same person as the profile owner, but echoed per
90
+ * product so cards can render the author independently).
91
+ */
92
+ user: ProductUser | undefined;
93
+ categories: Category[];
94
+ }
95
+ export interface Video {
96
+ id: string;
97
+ title: string;
98
+ description: string;
99
+ url: string;
100
+ createdAt: string;
101
+ updatedAt: string;
102
+ }
103
+ export interface ActiveDevice {
104
+ id: string;
105
+ userAgent: string;
106
+ ip: string;
107
+ createdAt: string;
108
+ lastUsedAt: string;
109
+ }
110
+ export interface ProfileStats {
111
+ subscribersCount: number;
112
+ subscriptionsCount: number;
113
+ productsCount: number;
114
+ videosCount: number;
115
+ }
116
+ /** Compact public user card for subscriber/subscription lists — no email/ban data. */
117
+ export interface ProfileUser {
118
+ id: string;
119
+ username: string;
120
+ avatarUrl: string;
121
+ }
122
+ export interface GetPublicProfileRequest {
123
+ username: string;
124
+ /** optional — present when caller is authenticated */
125
+ viewerUserId: string;
126
+ }
127
+ export interface PublicProfileResponse {
128
+ id: string;
129
+ username: string;
130
+ fullName: string;
131
+ /** Decimal as string */
132
+ rating: string;
133
+ aboutMe: string;
134
+ socialMedia: SocialMedia[];
135
+ stats: ProfileStats | undefined;
136
+ videos: Video[];
137
+ products: Product[];
138
+ country: Country | undefined;
139
+ avatarUrl: string;
140
+ bannerUrl: string;
141
+ role: string;
142
+ createdAt: string;
143
+ hideSubscriptions: boolean;
144
+ /** Either populated lists or empty depending on hide_subscriptions */
145
+ subscriptions: ProfileUser[];
146
+ subscribers: ProfileUser[];
147
+ isOwner: boolean;
148
+ /** viewer is subscribed to this profile (false when anonymous / self) */
149
+ isSubscribed: boolean;
150
+ /**
151
+ * Premium fields — populated only when the profile owner has an active
152
+ * PremiumSubscription. Non-premium viewers and non-premium profiles see
153
+ * empty strings / false.
154
+ */
155
+ isPremium: boolean;
156
+ profileColor: string;
157
+ avatarBorder: AvatarBorder | undefined;
158
+ animatedAvatarUrl: string;
159
+ animatedBannerUrl: string;
160
+ /** ISO 8601, empty when not premium */
161
+ premiumExpiresAt: string;
162
+ }
163
+ export interface UpdateProfileRequest {
164
+ userId: string;
165
+ fullName: string;
166
+ aboutMe: string;
167
+ newsletterSubscription: boolean;
168
+ hideSubscriptions: boolean;
169
+ avatarUrl: string;
170
+ bannerUrl: string;
171
+ countryId: string;
172
+ timezone: string;
173
+ socialMedia: CreateSocialMedia[];
174
+ /**
175
+ * Premium-only fields — rejected with FAILED_PRECONDITION when the caller
176
+ * has no active premium. Empty string clears the value.
177
+ */
178
+ profileColor: string;
179
+ avatarBorderId: string;
180
+ animatedAvatarUrl: string;
181
+ animatedBannerUrl: string;
182
+ }
183
+ export interface UpdateUserRequest {
184
+ userId: string;
185
+ username: string;
186
+ email: string;
187
+ /** confirmation code when changing email/username */
188
+ code: string;
189
+ }
190
+ export interface UserResponse {
191
+ user: User | undefined;
192
+ }
193
+ export interface UpdateUserRoleRequest {
194
+ adminId: string;
195
+ userId: string;
196
+ role: string;
197
+ /** "grant" (default) | "revoke" */
198
+ action: string;
199
+ }
200
+ export interface GetUsersRequest {
201
+ page: string;
202
+ limit: string;
203
+ search: string;
204
+ roleName: string;
205
+ }
206
+ export interface GetUsersResponse {
207
+ items: User[];
208
+ total: number;
209
+ page: number;
210
+ limit: number;
211
+ }
212
+ export interface GetActiveDevicesRequest {
213
+ userId: string;
214
+ }
215
+ export interface GetActiveDevicesResponse {
216
+ devices: ActiveDevice[];
217
+ }
218
+ export interface ManageDevicesRequest {
219
+ userId: string;
220
+ deviceIdsToRemove: string[];
221
+ }
222
+ export interface ManageDevicesResponse {
223
+ ok: boolean;
224
+ removedCount: number;
225
+ }
226
+ export interface GetUserFieldsRequest {
227
+ username: string;
228
+ type: UserFieldsType;
229
+ page: number;
230
+ limit: number;
231
+ /** optional */
232
+ viewerUserId: string;
233
+ }
234
+ export interface GetUserFieldsResponse {
235
+ videos: Video[];
236
+ products: Product[];
237
+ subscriptions: ProfileUser[];
238
+ subscribers: ProfileUser[];
239
+ total: number;
240
+ page: number;
241
+ limit: number;
242
+ }
243
+ export interface SubscriptionRequest {
244
+ /** the authenticated user performing the action */
245
+ subscriberId: string;
246
+ /** the user being (un)subscribed to/from */
247
+ targetId: string;
248
+ }
249
+ export interface SubscriptionResponse {
250
+ /** state after the call */
251
+ subscribed: boolean;
252
+ /** target's subscriber count after the call */
253
+ subscribersCount: number;
254
+ }
255
+ export interface GetMyPremiumRequest {
256
+ userId: string;
257
+ }
258
+ export interface PremiumStateResponse {
259
+ isActive: boolean;
260
+ /** ACTIVE | EXPIRED | CANCELED | empty (never purchased) */
261
+ status: string;
262
+ currentPeriod: PremiumPeriod;
263
+ /** ISO 8601, empty when never purchased */
264
+ startedAt: string;
265
+ /** ISO 8601 */
266
+ expiresAt: string;
267
+ autoRenew: boolean;
268
+ hasSavedPaymentMethod: boolean;
269
+ }
270
+ export interface SetPremiumAutoRenewRequest {
271
+ userId: string;
272
+ enabled: boolean;
273
+ }
274
+ /**
275
+ * Internal — payments-service hands us the period that was just paid for, plus
276
+ * the YooKassa payment_method id (empty for balance/non-recurring purchases).
277
+ */
278
+ export interface ActivatePremiumRequest {
279
+ userId: string;
280
+ period: PremiumPeriod;
281
+ /** empty for BALANCE / one-shot */
282
+ paymentMethodId: string;
283
+ /** false = first purchase; true = cron-driven renewal */
284
+ isRenewal: boolean;
285
+ }
286
+ export interface IsPremiumActiveRequest {
287
+ userId: string;
288
+ }
289
+ export interface IsPremiumActiveResponse {
290
+ isActive: boolean;
291
+ }
292
+ export interface AvatarBorder {
293
+ id: string;
294
+ code: string;
295
+ name: string;
296
+ description: string;
297
+ imageUrl: string;
298
+ isAnimated: boolean;
299
+ source: string;
300
+ sortOrder: number;
301
+ isActive: boolean;
302
+ }
303
+ export interface ListAvatarBordersRequest {
304
+ /** admin-only — gateway gates by role */
305
+ includeInactive: boolean;
306
+ /** optional filter */
307
+ source: string;
308
+ }
309
+ export interface ListAvatarBordersResponse {
310
+ items: AvatarBorder[];
311
+ }
312
+ export interface UpsertAvatarBorderRequest {
313
+ /** empty = create */
314
+ id: string;
315
+ /** required when creating */
316
+ code: string;
317
+ name: string;
318
+ description: string;
319
+ imageUrl: string;
320
+ isAnimated: boolean;
321
+ source: string;
322
+ sortOrder: number;
323
+ isActive: boolean;
324
+ }
325
+ export interface DeleteAvatarBorderRequest {
326
+ id: string;
327
+ }
328
+ export interface DeleteAvatarBorderResponse {
329
+ ok: boolean;
330
+ }
331
+ export interface UpdatePrivacyRequest {
332
+ userId: string;
333
+ hideEmail: boolean;
334
+ hideBalance: boolean;
335
+ hideOnline: boolean;
336
+ }
337
+ export interface UpdateEmailPrefsRequest {
338
+ userId: string;
339
+ emailOnSales: boolean;
340
+ emailOnReviews: boolean;
341
+ emailOnNews: boolean;
342
+ }
343
+ export interface UpdateEmailPrefsResponse {
344
+ emailOnSales: boolean;
345
+ emailOnReviews: boolean;
346
+ emailOnNews: boolean;
347
+ }
348
+ export interface UpdateLocaleRequest {
349
+ userId: string;
350
+ /** "ru" | "en" | ... */
351
+ locale: string;
352
+ }
353
+ export interface UpdateLocaleResponse {
354
+ locale: string;
355
+ }
356
+ export interface SoftDeleteAccountRequest {
357
+ userId: string;
358
+ /** optional, for support/audit */
359
+ reason: string;
360
+ /** 0 → use server default (30) */
361
+ cooldownDays: number;
362
+ }
363
+ export interface SoftDeleteAccountResponse {
364
+ /** ISO 8601 */
365
+ deletedAt: string;
366
+ scheduledForHardDelete: string;
367
+ }
368
+ export interface RestoreAccountRequest {
369
+ userId: string;
370
+ }
371
+ export interface HardDeletePendingRequest {
372
+ /** 0 → default 100 */
373
+ maxBatch: number;
374
+ }
375
+ export interface HardDeletePendingResponse {
376
+ deleted: number;
377
+ }
378
+ export interface ChangePasswordRequest {
379
+ userId: string;
380
+ currentPassword: string;
381
+ newPassword: string;
382
+ /** Optional: revoke all other sessions on success. */
383
+ revokeOtherSessions: boolean;
384
+ }
385
+ export interface BlockUserRequest {
386
+ blockerId: string;
387
+ blockedId: string;
388
+ /** optional */
389
+ reason: string;
390
+ }
391
+ export interface BlockUserResponse {
392
+ blocked: boolean;
393
+ }
394
+ export interface BlockedUserRow {
395
+ id: string;
396
+ username: string;
397
+ avatarUrl: string;
398
+ blockedAt: string;
399
+ reason: string;
400
+ }
401
+ export interface ListBlockedUsersRequest {
402
+ blockerId: string;
403
+ page: number;
404
+ limit: number;
405
+ }
406
+ export interface ListBlockedUsersResponse {
407
+ items: BlockedUserRow[];
408
+ total: number;
409
+ page: number;
410
+ limit: number;
411
+ }
412
+ export interface IsBlockedRequest {
413
+ blockerId: string;
414
+ blockedId: string;
415
+ }
416
+ export interface IsBlockedResponse {
417
+ isBlocked: boolean;
418
+ }
419
+ export interface DataExportRequestRow {
420
+ id: string;
421
+ userId: string;
422
+ /** PENDING | PROCESSING | READY | FAILED */
423
+ status: string;
424
+ fileUrl: string;
425
+ fileSize: number;
426
+ error: string;
427
+ createdAt: string;
428
+ completedAt: string;
429
+ }
430
+ export interface RequestDataExportRequest {
431
+ userId: string;
432
+ }
433
+ export interface ListDataExportsRequest {
434
+ userId: string;
435
+ page: number;
436
+ limit: number;
437
+ }
438
+ export interface ListDataExportsResponse {
439
+ items: DataExportRequestRow[];
440
+ total: number;
441
+ page: number;
442
+ limit: number;
443
+ }
444
+ export interface PickPendingDataExportRequest {
445
+ /** tasks-service polls; returns one PENDING row marked PROCESSING, or empty. */
446
+ Placeholder: boolean;
447
+ }
448
+ export interface CompleteDataExportRequest {
449
+ id: string;
450
+ fileUrl: string;
451
+ fileSize: number;
452
+ /** if set, marks FAILED instead of READY */
453
+ error: string;
454
+ }
455
+ export interface CollectUserExportDataRequest {
456
+ userId: string;
457
+ }
458
+ export interface CollectUserExportDataResponse {
459
+ /**
460
+ * Opaque JSON-as-string of user-owned data. tasks-service writes it to
461
+ * S3 verbatim. Keeps the schema-specific marshaling private to users-service.
462
+ */
463
+ payloadJson: string;
464
+ }
465
+ export interface GetAccountSettingsRequest {
466
+ userId: string;
467
+ }
468
+ export interface AccountSettingsResponse {
469
+ /** Identity */
470
+ id: string;
471
+ username: string;
472
+ email: string;
473
+ fullName: string;
474
+ aboutMe: string;
475
+ avatarUrl: string;
476
+ bannerUrl: string;
477
+ locale: string;
478
+ timezone: string;
479
+ countryId: string;
480
+ createdAt: string;
481
+ /** 2FA */
482
+ twoFactorType: string;
483
+ twoFactorEnabled: boolean;
484
+ backupCodesRemaining: number;
485
+ /** Privacy */
486
+ hideEmail: boolean;
487
+ hideBalance: boolean;
488
+ hideOnline: boolean;
489
+ hideSubscriptions: boolean;
490
+ /** Email prefs */
491
+ emailOnSales: boolean;
492
+ emailOnReviews: boolean;
493
+ emailOnNews: boolean;
494
+ /** Payout defaults */
495
+ payoutMethod: string;
496
+ payoutDetails: string;
497
+ /** Premium snapshot */
498
+ premiumIsActive: boolean;
499
+ premiumStatus: string;
500
+ premiumExpiresAt: string;
501
+ premiumAutoRenew: boolean;
502
+ /** Soft-delete state */
503
+ deletedAt: string;
504
+ scheduledForHardDelete: string;
505
+ socialMedia: SocialMedia[];
506
+ }
507
+ export declare const USERS_V1_PACKAGE_NAME = "users.v1";
508
+ export interface UsersServiceClient {
509
+ getPublicProfile(request: GetPublicProfileRequest): Observable<PublicProfileResponse>;
510
+ updateProfile(request: UpdateProfileRequest): Observable<PublicProfileResponse>;
511
+ updateUser(request: UpdateUserRequest): Observable<UserResponse>;
512
+ updateUserRole(request: UpdateUserRoleRequest): Observable<UserResponse>;
513
+ getUsers(request: GetUsersRequest): Observable<GetUsersResponse>;
514
+ getActiveDevices(request: GetActiveDevicesRequest): Observable<GetActiveDevicesResponse>;
515
+ manageDevices(request: ManageDevicesRequest): Observable<ManageDevicesResponse>;
516
+ getUserFields(request: GetUserFieldsRequest): Observable<GetUserFieldsResponse>;
517
+ createSubscription(request: SubscriptionRequest): Observable<SubscriptionResponse>;
518
+ deleteSubscription(request: SubscriptionRequest): Observable<SubscriptionResponse>;
519
+ banUser(request: BanUserRequest): Observable<UserResponse>;
520
+ unbanUser(request: UnbanUserRequest): Observable<UserResponse>;
521
+ /**
522
+ * Premium (paid). State lives in users-service; payments-service handles
523
+ * money and calls ActivatePremium (internal) on completion.
524
+ */
525
+ getMyPremium(request: GetMyPremiumRequest): Observable<PremiumStateResponse>;
526
+ setPremiumAutoRenew(request: SetPremiumAutoRenewRequest): Observable<PremiumStateResponse>;
527
+ /**
528
+ * Internal — InternalServiceGuard. Called by payments-service after a
529
+ * successful premium payment (balance or YooKassa webhook).
530
+ */
531
+ activatePremium(request: ActivatePremiumRequest): Observable<PremiumStateResponse>;
532
+ /** Internal — fast lookup for the commission engine in payments-service. */
533
+ isPremiumActive(request: IsPremiumActiveRequest): Observable<IsPremiumActiveResponse>;
534
+ /**
535
+ * Avatar borders (catalog + admin CRUD). Catalog read is public; mutations
536
+ * are admin only (gateway enforces with RolesGuard).
537
+ */
538
+ listAvatarBorders(request: ListAvatarBordersRequest): Observable<ListAvatarBordersResponse>;
539
+ upsertAvatarBorder(request: UpsertAvatarBorderRequest): Observable<AvatarBorder>;
540
+ deleteAvatarBorder(request: DeleteAvatarBorderRequest): Observable<DeleteAvatarBorderResponse>;
541
+ /** Account settings — bundled write surface for the UI. */
542
+ updatePrivacy(request: UpdatePrivacyRequest): Observable<PublicProfileResponse>;
543
+ updateEmailPrefs(request: UpdateEmailPrefsRequest): Observable<UpdateEmailPrefsResponse>;
544
+ updateLocale(request: UpdateLocaleRequest): Observable<UpdateLocaleResponse>;
545
+ /**
546
+ * Soft-delete + restore. Internal AuthService also queries the soft-delete
547
+ * state on login (rejects if deletedAt set).
548
+ */
549
+ softDeleteAccount(request: SoftDeleteAccountRequest): Observable<SoftDeleteAccountResponse>;
550
+ restoreAccount(request: RestoreAccountRequest): Observable<UserResponse>;
551
+ /** tasks-service cron */
552
+ hardDeletePending(request: HardDeletePendingRequest): Observable<HardDeletePendingResponse>;
553
+ /** Blocks */
554
+ blockUser(request: BlockUserRequest): Observable<BlockUserResponse>;
555
+ unblockUser(request: BlockUserRequest): Observable<BlockUserResponse>;
556
+ listBlockedUsers(request: ListBlockedUsersRequest): Observable<ListBlockedUsersResponse>;
557
+ /** internal lookup */
558
+ isBlocked(request: IsBlockedRequest): Observable<IsBlockedResponse>;
559
+ /** Data export */
560
+ requestDataExport(request: RequestDataExportRequest): Observable<DataExportRequestRow>;
561
+ listDataExports(request: ListDataExportsRequest): Observable<ListDataExportsResponse>;
562
+ /** tasks-service */
563
+ pickPendingDataExport(request: PickPendingDataExportRequest): Observable<DataExportRequestRow>;
564
+ /** tasks-service */
565
+ completeDataExport(request: CompleteDataExportRequest): Observable<DataExportRequestRow>;
566
+ /** tasks-service */
567
+ collectUserExportData(request: CollectUserExportDataRequest): Observable<CollectUserExportDataResponse>;
568
+ /** Unified read for the settings page */
569
+ getAccountSettings(request: GetAccountSettingsRequest): Observable<AccountSettingsResponse>;
570
+ /** Password — separate from generic createCode/verifyCode reset flow. */
571
+ changePassword(request: ChangePasswordRequest): Observable<Ok>;
572
+ }
573
+ export interface UsersServiceController {
574
+ getPublicProfile(request: GetPublicProfileRequest): Promise<PublicProfileResponse> | Observable<PublicProfileResponse> | PublicProfileResponse;
575
+ updateProfile(request: UpdateProfileRequest): Promise<PublicProfileResponse> | Observable<PublicProfileResponse> | PublicProfileResponse;
576
+ updateUser(request: UpdateUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
577
+ updateUserRole(request: UpdateUserRoleRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
578
+ getUsers(request: GetUsersRequest): Promise<GetUsersResponse> | Observable<GetUsersResponse> | GetUsersResponse;
579
+ getActiveDevices(request: GetActiveDevicesRequest): Promise<GetActiveDevicesResponse> | Observable<GetActiveDevicesResponse> | GetActiveDevicesResponse;
580
+ manageDevices(request: ManageDevicesRequest): Promise<ManageDevicesResponse> | Observable<ManageDevicesResponse> | ManageDevicesResponse;
581
+ getUserFields(request: GetUserFieldsRequest): Promise<GetUserFieldsResponse> | Observable<GetUserFieldsResponse> | GetUserFieldsResponse;
582
+ createSubscription(request: SubscriptionRequest): Promise<SubscriptionResponse> | Observable<SubscriptionResponse> | SubscriptionResponse;
583
+ deleteSubscription(request: SubscriptionRequest): Promise<SubscriptionResponse> | Observable<SubscriptionResponse> | SubscriptionResponse;
584
+ banUser(request: BanUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
585
+ unbanUser(request: UnbanUserRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
586
+ /**
587
+ * Premium (paid). State lives in users-service; payments-service handles
588
+ * money and calls ActivatePremium (internal) on completion.
589
+ */
590
+ getMyPremium(request: GetMyPremiumRequest): Promise<PremiumStateResponse> | Observable<PremiumStateResponse> | PremiumStateResponse;
591
+ setPremiumAutoRenew(request: SetPremiumAutoRenewRequest): Promise<PremiumStateResponse> | Observable<PremiumStateResponse> | PremiumStateResponse;
592
+ /**
593
+ * Internal — InternalServiceGuard. Called by payments-service after a
594
+ * successful premium payment (balance or YooKassa webhook).
595
+ */
596
+ activatePremium(request: ActivatePremiumRequest): Promise<PremiumStateResponse> | Observable<PremiumStateResponse> | PremiumStateResponse;
597
+ /** Internal — fast lookup for the commission engine in payments-service. */
598
+ isPremiumActive(request: IsPremiumActiveRequest): Promise<IsPremiumActiveResponse> | Observable<IsPremiumActiveResponse> | IsPremiumActiveResponse;
599
+ /**
600
+ * Avatar borders (catalog + admin CRUD). Catalog read is public; mutations
601
+ * are admin only (gateway enforces with RolesGuard).
602
+ */
603
+ listAvatarBorders(request: ListAvatarBordersRequest): Promise<ListAvatarBordersResponse> | Observable<ListAvatarBordersResponse> | ListAvatarBordersResponse;
604
+ upsertAvatarBorder(request: UpsertAvatarBorderRequest): Promise<AvatarBorder> | Observable<AvatarBorder> | AvatarBorder;
605
+ deleteAvatarBorder(request: DeleteAvatarBorderRequest): Promise<DeleteAvatarBorderResponse> | Observable<DeleteAvatarBorderResponse> | DeleteAvatarBorderResponse;
606
+ /** Account settings — bundled write surface for the UI. */
607
+ updatePrivacy(request: UpdatePrivacyRequest): Promise<PublicProfileResponse> | Observable<PublicProfileResponse> | PublicProfileResponse;
608
+ updateEmailPrefs(request: UpdateEmailPrefsRequest): Promise<UpdateEmailPrefsResponse> | Observable<UpdateEmailPrefsResponse> | UpdateEmailPrefsResponse;
609
+ updateLocale(request: UpdateLocaleRequest): Promise<UpdateLocaleResponse> | Observable<UpdateLocaleResponse> | UpdateLocaleResponse;
610
+ /**
611
+ * Soft-delete + restore. Internal AuthService also queries the soft-delete
612
+ * state on login (rejects if deletedAt set).
613
+ */
614
+ softDeleteAccount(request: SoftDeleteAccountRequest): Promise<SoftDeleteAccountResponse> | Observable<SoftDeleteAccountResponse> | SoftDeleteAccountResponse;
615
+ restoreAccount(request: RestoreAccountRequest): Promise<UserResponse> | Observable<UserResponse> | UserResponse;
616
+ /** tasks-service cron */
617
+ hardDeletePending(request: HardDeletePendingRequest): Promise<HardDeletePendingResponse> | Observable<HardDeletePendingResponse> | HardDeletePendingResponse;
618
+ /** Blocks */
619
+ blockUser(request: BlockUserRequest): Promise<BlockUserResponse> | Observable<BlockUserResponse> | BlockUserResponse;
620
+ unblockUser(request: BlockUserRequest): Promise<BlockUserResponse> | Observable<BlockUserResponse> | BlockUserResponse;
621
+ listBlockedUsers(request: ListBlockedUsersRequest): Promise<ListBlockedUsersResponse> | Observable<ListBlockedUsersResponse> | ListBlockedUsersResponse;
622
+ /** internal lookup */
623
+ isBlocked(request: IsBlockedRequest): Promise<IsBlockedResponse> | Observable<IsBlockedResponse> | IsBlockedResponse;
624
+ /** Data export */
625
+ requestDataExport(request: RequestDataExportRequest): Promise<DataExportRequestRow> | Observable<DataExportRequestRow> | DataExportRequestRow;
626
+ listDataExports(request: ListDataExportsRequest): Promise<ListDataExportsResponse> | Observable<ListDataExportsResponse> | ListDataExportsResponse;
627
+ /** tasks-service */
628
+ pickPendingDataExport(request: PickPendingDataExportRequest): Promise<DataExportRequestRow> | Observable<DataExportRequestRow> | DataExportRequestRow;
629
+ /** tasks-service */
630
+ completeDataExport(request: CompleteDataExportRequest): Promise<DataExportRequestRow> | Observable<DataExportRequestRow> | DataExportRequestRow;
631
+ /** tasks-service */
632
+ collectUserExportData(request: CollectUserExportDataRequest): Promise<CollectUserExportDataResponse> | Observable<CollectUserExportDataResponse> | CollectUserExportDataResponse;
633
+ /** Unified read for the settings page */
634
+ getAccountSettings(request: GetAccountSettingsRequest): Promise<AccountSettingsResponse> | Observable<AccountSettingsResponse> | AccountSettingsResponse;
635
+ /** Password — separate from generic createCode/verifyCode reset flow. */
636
+ changePassword(request: ChangePasswordRequest): Promise<Ok> | Observable<Ok> | Ok;
637
+ }
638
+ export declare function UsersServiceControllerMethods(): (constructor: Function) => void;
639
+ export declare const USERS_SERVICE_NAME = "UsersService";