connectbase-client 6.12.0 → 6.13.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.mts CHANGED
@@ -9782,7 +9782,17 @@ interface DeleteBillingKeyResponse {
9782
9782
  }
9783
9783
  type BillingCycle = "daily" | "weekly" | "monthly" | "yearly";
9784
9784
  type SubscriptionStatus = "active" | "paused" | "canceled" | "past_due" | "expired" | "trial";
9785
- interface CreateSubscriptionRequest {
9785
+ /**
9786
+ * `create()` 의 두 형태에 공통인 옵션.
9787
+ *
9788
+ * 무엇을 얼마에 청구할지는 둘 중 하나로 정한다:
9789
+ * - {@link CreateSubscriptionWithProduct} — 콘솔 가격표의 정기 상품 `product_id` 만 보낸다. 금액, 통화, 주기,
9790
+ * 플랜명, 무료 체험, MoR PG 가격 ref 는 **서버가 상품에서 정한다.** 브라우저에서 부르는 구독은 이 형태를 쓴다.
9791
+ * - {@link CreateSubscriptionWithAmount} — 금액과 요금제를 직접 보낸다(레거시). 결제 설정의 금액 출처가 `client`
9792
+ * 인 앱이거나 서버(시크릿 키, service_role 함수)에서 부를 때만 받는다. 가격표 전용 앱(`catalog`, 새 앱의 기본값)에서
9793
+ * 브라우저가 보내면 403 `client_amount_not_allowed` 다.
9794
+ */
9795
+ interface CreateSubscriptionOptions {
9786
9796
  /** 빌링키 ID (toss/stripe 필수, payapp 미사용 — payurl 모델) */
9787
9797
  billing_key_id?: string;
9788
9798
  /**
@@ -9793,34 +9803,19 @@ interface CreateSubscriptionRequest {
9793
9803
  */
9794
9804
  subscription_id?: string;
9795
9805
  /**
9796
- * true 면 구독 생성 즉시 1회차를 청구한다(빌링키 모델). false(기본)면 다음 결제일부터 청구.
9797
- * `trial_days` 가 있으면 즉시 청구하지 않는다(체험 종료 후 첫 청구).
9806
+ * true 면 구독 생성 즉시 1회차를 청구한다(빌링키 모델). 생략하면 가격표 구독은 즉시, 금액 직접 지정은 다음
9807
+ * 결제일부터 청구한다. 체험 기간이 있으면 즉시 청구하지 않는다(체험 종료 후 첫 청구).
9808
+ *
9809
+ * 가격표 전용 앱의 브라우저 호출은 `false` 를 보낼 수 없다(403 `client_schedule_not_allowed`) — 한 주기를 내지 않고
9810
+ * 쓰게 된다. 무료 체험은 가격표 상품의 `trial_days` 로 정한다.
9798
9811
  *
9799
9812
  * MoR(paddle/dodo)은 결제창에서 1회차를 받으므로 이 값을 쓰지 않는다.
9800
9813
  */
9801
9814
  start_now?: boolean;
9802
- /** 플랜 이름 */
9803
- plan_name: string;
9804
- /** 플랜 설명 */
9805
- plan_description?: string;
9806
- /** 결제 금액 */
9807
- amount: number;
9808
- /** 통화 (기본: KRW) */
9809
- currency?: string;
9810
- /** 결제 주기 */
9811
- billing_cycle: BillingCycle;
9812
- /** 결제일 (monthly: 1-28일, weekly: 0-6 요일) */
9813
- billing_day?: number;
9814
9815
  /**
9815
- * 트라이얼(무료 체험) 기간 (일).
9816
- *
9817
- * 빌링키 모델(toss/stripe)에서는 ConnectBase 스케줄러가 체험 종료일에 첫 청구를 건다.
9818
- * MoR 은 PG 가 정기청구를 소유하므로 결제창 생성 시 체험 일수를 함께 보낸다:
9819
- * - **Dodo**: 구독마다 지정 가능(0~10000일)
9820
- * - **Paddle**: 트라이얼이 요금제(price)에 붙는 속성이라 구독마다 지정할 수 없다 →
9821
- * 400 `trial_days_unsupported`. 체험이 설정된 price 를 Paddle 대시보드에서 따로 만들어 쓴다.
9816
+ * 결제일 (monthly: 1-28일, weekly: 0-6 요일). 가격표 전용 앱의 브라우저 호출은 지정할 수 없다(첫 주기가 길어진다).
9822
9817
  */
9823
- trial_days?: number;
9818
+ billing_day?: number;
9824
9819
  /**
9825
9820
  * 첫 결제에 적용할 할인/쿠폰 코드(MoR 전용, 선택).
9826
9821
  *
@@ -9852,8 +9847,6 @@ interface CreateSubscriptionRequest {
9852
9847
  customer_phone?: string;
9853
9848
  /** payapp 정기결제 만료일 yyyy-mm-dd (미입력시 +10년) */
9854
9849
  expire_date?: string;
9855
- /** MoR 필수: PG 카탈로그의 recurring price/product ref (Paddle `pri_*` / Dodo `pdt_*`) */
9856
- provider_price_ref?: string;
9857
9850
  /**
9858
9851
  * 사용할 자격증명 모드 오버라이드 (test|live). 단건결제 `prepare()` 의 `payment_mode` 와
9859
9852
  * 적용 조건이 **완전히 동일**하다 — 서버 시크릿 키(`cb_sk_*`)로 승격된 호출에서만 적용되고,
@@ -9865,9 +9858,48 @@ interface CreateSubscriptionRequest {
9865
9858
  * 구독은 생성 시점 모드가 고정되므로 이후 갱신 청구·해지도 같은 키로 처리된다.
9866
9859
  */
9867
9860
  payment_mode?: "test" | "live";
9868
- /** 메타데이터 */
9861
+ /** 메타데이터 (클라이언트 값이라 권한 지급의 근거로 쓰지 않는다 — 구독의 `product_id` 를 본다) */
9869
9862
  metadata?: Record<string, unknown>;
9870
9863
  }
9864
+ /** 가격표 정기 상품으로 구독한다 — 금액, 통화, 주기, 플랜명, 체험 기간, PG 가격 ref 를 서버가 정한다. */
9865
+ interface CreateSubscriptionWithProduct extends CreateSubscriptionOptions {
9866
+ /** 콘솔 가격표의 정기 상품 ID (예: `premium_month`). 단건 상품이면 400 `product_not_recurring`. */
9867
+ product_id: string;
9868
+ plan_name?: never;
9869
+ plan_description?: never;
9870
+ amount?: never;
9871
+ currency?: never;
9872
+ billing_cycle?: never;
9873
+ trial_days?: never;
9874
+ provider_price_ref?: never;
9875
+ }
9876
+ /** 금액과 요금제를 직접 정한다(레거시 앱, 서버 호출). */
9877
+ interface CreateSubscriptionWithAmount extends CreateSubscriptionOptions {
9878
+ /** 플랜 이름 */
9879
+ plan_name: string;
9880
+ /** 플랜 설명 */
9881
+ plan_description?: string;
9882
+ /** 결제 금액 */
9883
+ amount: number;
9884
+ /** 통화 (기본: KRW) */
9885
+ currency?: string;
9886
+ /** 결제 주기 */
9887
+ billing_cycle: BillingCycle;
9888
+ /**
9889
+ * 트라이얼(무료 체험) 기간 (일).
9890
+ *
9891
+ * 빌링키 모델(toss/stripe)에서는 ConnectBase 스케줄러가 체험 종료일에 첫 청구를 건다.
9892
+ * MoR 은 PG 가 정기청구를 소유하므로 결제창 생성 시 체험 일수를 함께 보낸다:
9893
+ * - **Dodo**: 구독마다 지정 가능(0~10000일)
9894
+ * - **Paddle**: 트라이얼이 요금제(price)에 붙는 속성이라 구독마다 지정할 수 없다 →
9895
+ * 400 `trial_days_unsupported`. 체험이 설정된 price 를 Paddle 대시보드에서 따로 만들어 쓴다.
9896
+ */
9897
+ trial_days?: number;
9898
+ /** MoR 필수: PG 카탈로그의 recurring price/product ref (Paddle `pri_*` / Dodo `pdt_*`) */
9899
+ provider_price_ref?: string;
9900
+ product_id?: never;
9901
+ }
9902
+ type CreateSubscriptionRequest = CreateSubscriptionWithProduct | CreateSubscriptionWithAmount;
9871
9903
  interface SubscriptionResponse {
9872
9904
  /** 구독 ID (UUID) */
9873
9905
  id: string;
@@ -9890,6 +9922,11 @@ interface SubscriptionResponse {
9890
9922
  launch_mode?: "overlay" | "redirect";
9891
9923
  /** paddle: 현재 구독이 물린 recurring price ID (pri_*) */
9892
9924
  provider_price_ref?: string;
9925
+ /**
9926
+ * 가격표 정기 상품으로 만든 구독이면 그 상품 ID. 서버가 정한 값이라 **권한 지급의 근거로 쓴다**. 금액을 직접
9927
+ * 바꾸거나 PG 가 가격표에 없는 가격으로 바꾸면 비워진다.
9928
+ */
9929
+ product_id?: string;
9893
9930
  /** 플랜 이름 */
9894
9931
  plan_name: string;
9895
9932
  /** 플랜 설명 */
@@ -9957,11 +9994,20 @@ interface SubscriptionResponse {
9957
9994
  interface UpdateSubscriptionRequest {
9958
9995
  /** 새 빌링키 ID */
9959
9996
  billing_key_id?: string;
9960
- /** 플랜 이름 */
9997
+ /**
9998
+ * 다른 가격표 정기 상품으로 바꾼다(빌링키 구독만, 다음 청구부터 새 금액). 금액, 통화, 주기, 플랜명을 상품에서 정한다.
9999
+ * 정산이 없어 가격표 전용 앱에서는 서버 호출만 쓸 수 있다(브라우저는 403 `client_plan_change_not_allowed`).
10000
+ * MoR 구독은 {@link SubscriptionAPI.changePlan} 을 쓴다. 빈 문자열이면 가격표 연결만 끊는다.
10001
+ */
10002
+ product_id?: string;
10003
+ /** 플랜 이름 (가격표 전용 앱에서는 서버 호출만) */
9961
10004
  plan_name?: string;
9962
10005
  /** 플랜 설명 */
9963
10006
  plan_description?: string;
9964
- /** 결제 금액 */
10007
+ /**
10008
+ * 결제 금액 (빌링키 구독만, 가격표 전용 앱에서는 서버 호출만). 바꾸면 `product_id` 가 비워진다.
10009
+ * PG 가 청구 금액을 정하는 구독(payapp, paypal, MoR)은 400 `subscription_amount_update_unsupported`.
10010
+ */
9965
10011
  amount?: number;
9966
10012
  /** 메타데이터 */
9967
10013
  metadata?: Record<string, unknown>;
@@ -10046,8 +10092,30 @@ type OnPaymentFailure = "prevent_change" | "apply_change";
10046
10092
  * toss/stripe/payapp/paypal 구독은 PG 네이티브 proration 이 없어 400
10047
10093
  * `plan_change_unsupported` 다.
10048
10094
  */
10049
- interface ChangePlanRequest {
10050
- /** 새 recurring price/product ref (Paddle `pri_*` / Dodo `pdt_*`) — 필수 */
10095
+ interface ChangePlanOptions {
10096
+ /**
10097
+ * 정산 방식 (기본: prorated_immediately). 가격표 전용 앱의 브라우저 호출은 지금 정산하는 모드
10098
+ * (`prorated_immediately`, `full_immediately`, `difference_immediately`)만 쓸 수 있다
10099
+ * (403 `proration_mode_not_allowed`) — 다음 주기로 미루면 돈을 내기 전에 비싼 요금제를 쓴다.
10100
+ */
10101
+ proration_mode?: ProrationMode;
10102
+ /** 즉시청구 실패 시 처리 (기본: prevent_change). 가격표 전용 앱의 브라우저 호출은 `prevent_change` 만. */
10103
+ on_payment_failure?: OnPaymentFailure;
10104
+ /** 메타데이터 병합 (선택) */
10105
+ metadata?: Record<string, unknown>;
10106
+ }
10107
+ /** 가격표 정기 상품으로 바꾼다 — 새 PG 가격 ref 와 플랜명을 서버가 상품에서 정한다. */
10108
+ interface ChangePlanWithProduct extends ChangePlanOptions {
10109
+ /** 콘솔 가격표의 정기 상품 ID. 상품에 이 구독의 프로바이더와 모드용 PG 가격 ref 가 있어야 한다. */
10110
+ product_id: string;
10111
+ provider_price_ref?: never;
10112
+ plan_name?: never;
10113
+ plan_description?: never;
10114
+ amount?: never;
10115
+ }
10116
+ /** PG 가격 ref 를 직접 지정한다(레거시 앱, 서버 호출). */
10117
+ interface ChangePlanWithPriceRef extends ChangePlanOptions {
10118
+ /** 새 recurring price/product ref (Paddle `pri_*` / Dodo `pdt_*`) */
10051
10119
  provider_price_ref: string;
10052
10120
  /** 우리 표시용 플랜명 (선택) */
10053
10121
  plan_name?: string;
@@ -10055,13 +10123,9 @@ interface ChangePlanRequest {
10055
10123
  plan_description?: string;
10056
10124
  /** 우리 기록용 정기 금액 (선택 — 미지정 시 PG 값으로 자동 수렴) */
10057
10125
  amount?: number;
10058
- /** 정산 방식 (기본: prorated_immediately) */
10059
- proration_mode?: ProrationMode;
10060
- /** 즉시청구 실패 시 처리 (기본: prevent_change) */
10061
- on_payment_failure?: OnPaymentFailure;
10062
- /** 메타데이터 병합 (선택) */
10063
- metadata?: Record<string, unknown>;
10126
+ product_id?: never;
10064
10127
  }
10128
+ type ChangePlanRequest = ChangePlanWithProduct | ChangePlanWithPriceRef;
10065
10129
  /**
10066
10130
  * 요금제 스왑 미리보기 응답 — 실제 적용 없이 정산 결과만 계산.
10067
10131
  *
@@ -10167,14 +10231,12 @@ interface ListSubscriptionPaymentsResponse {
10167
10231
  limit: number;
10168
10232
  offset: number;
10169
10233
  }
10170
- interface ChargeWithBillingKeyRequest {
10234
+ interface ChargeWithBillingKeyOptions {
10171
10235
  /** 빌링키 ID */
10172
10236
  billing_key_id: string;
10173
- /** 결제 금액 */
10174
- amount: number;
10175
- /** 상품명 */
10176
- order_name: string;
10177
- /** 주문 ID (선택) */
10237
+ /**
10238
+ * 주문 ID (선택). 재시도는 같은 내용이어야 한다 — 같은 주문 ID 로 다른 금액이나 상품을 보내면 409 `order_id_conflict`.
10239
+ */
10178
10240
  order_id?: string;
10179
10241
  /** 고객 이메일 */
10180
10242
  customer_email?: string;
@@ -10183,6 +10245,24 @@ interface ChargeWithBillingKeyRequest {
10183
10245
  /** 메타데이터 */
10184
10246
  metadata?: Record<string, unknown>;
10185
10247
  }
10248
+ /** 가격표 단건 상품으로 청구한다 — 금액과 상품명을 서버가 정한다. */
10249
+ interface ChargeWithBillingKeyProduct extends ChargeWithBillingKeyOptions {
10250
+ product_id: string;
10251
+ /** 수량 (1~1000, 기본 1) */
10252
+ quantity?: number;
10253
+ amount?: never;
10254
+ order_name?: never;
10255
+ }
10256
+ /** 금액을 직접 정한다(레거시 앱, 서버 호출). KRW. */
10257
+ interface ChargeWithBillingKeyAmount extends ChargeWithBillingKeyOptions {
10258
+ /** 결제 금액 */
10259
+ amount: number;
10260
+ /** 상품명 */
10261
+ order_name: string;
10262
+ product_id?: never;
10263
+ quantity?: never;
10264
+ }
10265
+ type ChargeWithBillingKeyRequest = ChargeWithBillingKeyProduct | ChargeWithBillingKeyAmount;
10186
10266
  interface ChargeWithBillingKeyResponse {
10187
10267
  /** 토스 결제 키 */
10188
10268
  payment_key: string;
@@ -10190,6 +10270,11 @@ interface ChargeWithBillingKeyResponse {
10190
10270
  order_id: string;
10191
10271
  /** 결제 금액 */
10192
10272
  amount: number;
10273
+ /** `amount` 의 통화 (ISO 4217) */
10274
+ currency?: string;
10275
+ /** 가격표 결제면 상품 ID 와 수량 */
10276
+ product_id?: string;
10277
+ quantity?: number;
10193
10278
  /** 결제 상태 */
10194
10279
  status: string;
10195
10280
  /** 영수증 URL */
@@ -10316,32 +10401,41 @@ declare class SubscriptionAPI {
10316
10401
  * 구독 생성
10317
10402
  * 정기결제 구독을 생성합니다.
10318
10403
  *
10319
- * @param data - 구독 정보
10320
- * @returns 생성된 구독 정보
10404
+ * **금액과 요금제는 서버가 정합니다.** 브라우저에서는 콘솔 가격표의 정기 상품 `product_id` 만 보내고, 서버가
10405
+ * 금액, 통화, 주기, 플랜명, 무료 체험, MoR PG 가격 ref 를 상품에서 정합니다. 금액을 직접 보내는 형태(레거시)는
10406
+ * 결제 설정의 금액 출처가 `client` 인 앱이거나 서버(시크릿 키, service_role 함수)에서 부를 때만 받습니다.
10407
+ *
10408
+ * @param data - 가격표 정기 상품(`product_id`) 또는 금액과 요금제, 빌링키, 고객 정보 등
10409
+ * @returns 생성된 구독 정보 (`product_id` 포함)
10321
10410
  *
10322
10411
  * @example
10323
10412
  * ```typescript
10413
+ * // 가격표 구독 (권장) — 금액, 주기, 체험 기간은 콘솔 가격표의 premium_month 가 정한다
10324
10414
  * const subscription = await client.subscription.create({
10325
10415
  * billing_key_id: 'bk_xxxxx',
10326
- * plan_name: '프리미엄 플랜',
10327
- * amount: 9900,
10328
- * billing_cycle: 'monthly',
10329
- * billing_day: 15, // 매월 15일 결제
10330
- * trial_days: 7 // 7일 무료 체험
10416
+ * product_id: 'premium_month',
10331
10417
  * })
10332
10418
  *
10333
- * // MoR(dodo/paddle) 구독 + 할인 코드
10419
+ * // MoR(dodo/paddle) 구독 + 할인 코드 — PG 가격 ref 도 상품의 provider_price_refs 에서 서버가 고른다
10334
10420
  * const promo = await client.subscription.create({
10421
+ * product_id: 'premium_month',
10422
+ * discount_code: 'LAUNCH50', // 첫 결제에 적용 (몇 주기까지인지는 PG 쿠폰 설정이 결정)
10423
+ * })
10424
+ *
10425
+ * // 금액 직접 지정 (레거시 앱, 서버 호출) — 가격표 전용 앱에서 브라우저가 보내면 403 client_amount_not_allowed
10426
+ * const legacy = await client.subscription.create({
10427
+ * billing_key_id: 'bk_xxxxx',
10335
10428
  * plan_name: '프리미엄 플랜',
10336
10429
  * amount: 9900,
10337
10430
  * billing_cycle: 'monthly',
10338
- * provider_price_ref: 'pdt_xxxxx', // PG 카탈로그의 recurring 상품
10339
- * discount_code: 'LAUNCH50', // 첫 결제에 적용 (몇 주기까지인지는 PG 쿠폰 설정이 결정)
10340
- * trial_days: 14, // Dodo 만 지원 — Paddle 은 400 trial_days_unsupported
10341
10431
  * })
10342
10432
  * ```
10343
10433
  *
10344
10434
  * @remarks
10435
+ * 권한은 구독의 `product_id` 로 지급합니다(`metadata` 는 클라이언트 값). 가격표 전용 앱의 브라우저 호출은
10436
+ * `start_now: false` 와 `billing_day` 를 쓸 수 없습니다(403 `client_schedule_not_allowed`) — 둘 다 한 번 낸 돈으로 쓰는
10437
+ * 기간을 늘립니다. 무료 체험은 상품의 `trial_days` 가 정합니다.
10438
+ *
10345
10439
  * 할인 코드(`discount_code`)와 `trial_days` 의 프로바이더 지원 범위가 다릅니다:
10346
10440
  * - **Dodo**: 할인 코드 O, 결제창 쿠폰 입력 토글 O, 구독별 체험 일수 O
10347
10441
  * - **Paddle**: 할인 코드 O(코드→내부 ID 자동 해소), 쿠폰 입력칸은 항상 노출(숨김 불가),
@@ -10383,9 +10477,9 @@ declare class SubscriptionAPI {
10383
10477
  *
10384
10478
  * @example
10385
10479
  * ```typescript
10480
+ * // 서버(시크릿 키, service_role 함수)에서 다른 가격표 상품으로 바꾸기 — 다음 청구부터 새 금액
10386
10481
  * await client.subscription.update(subscriptionId, {
10387
- * plan_name: '엔터프라이즈 플랜',
10388
- * amount: 29900
10482
+ * product_id: 'enterprise_month',
10389
10483
  * })
10390
10484
  *
10391
10485
  * // 다음 결제일을 특정 날짜로 옮기기 (기간권·보상)
@@ -10537,11 +10631,10 @@ declare class SubscriptionAPI {
10537
10631
  *
10538
10632
  * @example
10539
10633
  * ```typescript
10634
+ * // 가격표 정기 상품으로 바꾼다 — 새 PG 가격 ref 와 플랜명은 서버가 상품에서 정한다
10540
10635
  * await client.subscription.changePlan(subscriptionId, {
10541
- * provider_price_ref: 'pri_family_monthly', // Dodo 는 'pdt_*'
10542
- * plan_name: '가족 플랜',
10543
- * amount: 24900,
10544
- * proration_mode: 'prorated_immediately',
10636
+ * product_id: 'family_month',
10637
+ * proration_mode: 'prorated_immediately', // 브라우저는 지금 정산하는 모드만
10545
10638
  * })
10546
10639
  * ```
10547
10640
  */
@@ -10568,7 +10661,7 @@ declare class SubscriptionAPI {
10568
10661
  * @example
10569
10662
  * ```typescript
10570
10663
  * const preview = await client.subscription.previewChangePlan(subscriptionId, {
10571
- * provider_price_ref: 'pri_family_monthly',
10664
+ * product_id: 'family_month',
10572
10665
  * })
10573
10666
  * // 통화를 함께 포맷한다 — 금액만 쓰면 다통화에서 거짓 금액이 된다
10574
10667
  * format(preview.immediate_charge_amount, preview.currency)
@@ -10600,10 +10693,11 @@ declare class SubscriptionAPI {
10600
10693
  *
10601
10694
  * @example
10602
10695
  * ```typescript
10696
+ * // 가격표 단건 상품으로 청구 — 금액과 상품명은 서버가 정한다
10603
10697
  * const result = await client.subscription.chargeWithBillingKey({
10604
10698
  * billing_key_id: 'bk_xxxxx',
10605
- * amount: 15000,
10606
- * order_name: '추가 결제'
10699
+ * product_id: 'gem_100',
10700
+ * quantity: 2,
10607
10701
  * })
10608
10702
  *
10609
10703
  * if (result.status === 'done') {
@@ -11631,6 +11725,19 @@ interface WebRTCConnectOptions {
11631
11725
  isBroadcaster?: boolean;
11632
11726
  /** 로컬 미디어 스트림 */
11633
11727
  localStream?: MediaStream;
11728
+ /**
11729
+ * 비공개 룸으로 열 때 함께 들어올 회원 ID 목록 (최대 50개, 로그인 회원 연결만).
11730
+ *
11731
+ * 이 연결이 룸을 새로 열면 목록의 회원과 자신만 들어오는 비공개 룸이 된다. 이미 열린 룸이면 그 룸이
11732
+ * 비공개이고 내가 목록에 있어야 들어간다(공개 룸이면 `이미 공개 룸으로 열려 있습니다` 오류).
11733
+ * 참가자 모두가 같은 목록을 보내면 누가 먼저 오든 비공개로 열린다. 룸 ID 는 추측할 수 없는 값을 쓴다.
11734
+ */
11735
+ allowedMemberIds?: string[];
11736
+ }
11737
+ /** 서버가 join 요청을 바꿨을 때의 알림 (예: `broadcaster_requires_auth`, `broadcaster_role_required`) */
11738
+ interface WebRTCWarning {
11739
+ code: string;
11740
+ message: string;
11634
11741
  }
11635
11742
  /** 피어 정보 */
11636
11743
  interface PeerInfo {
@@ -11640,8 +11747,6 @@ interface PeerInfo {
11640
11747
  user_id?: string;
11641
11748
  /** 방송자 여부 */
11642
11749
  is_broadcaster?: boolean;
11643
- /** 참가 시간 */
11644
- joined_at?: string;
11645
11750
  }
11646
11751
  /** 룸 정보 */
11647
11752
  interface RoomInfo {
@@ -11704,6 +11809,8 @@ interface RoomSummary {
11704
11809
  peer_count: number;
11705
11810
  broadcaster_count: number;
11706
11811
  viewer_count: number;
11812
+ /** 회원 허용 목록이 있는 비공개 룸이면 true (목록의 회원에게만 보인다) */
11813
+ private?: boolean;
11707
11814
  }
11708
11815
  /**
11709
11816
  * 앱 통계 응답 — server `GetStats` (`GET /v1/apps/:appID/stats`) 의 와이어 형태.
@@ -11730,6 +11837,8 @@ interface JoinRoomRequest {
11730
11837
  room_id: string;
11731
11838
  /** 방송자 요청. 서버가 정한다(`JoinRoomResponse.is_broadcaster`). */
11732
11839
  is_broadcaster?: boolean;
11840
+ /** 비공개 룸 회원 허용 목록 (`WebRTCConnectOptions.allowedMemberIds` 와 같은 규칙) */
11841
+ allowed_member_ids?: string[];
11733
11842
  }
11734
11843
  /** 참가 응답 (`POST /rooms/join`) */
11735
11844
  interface JoinRoomResponse {
@@ -11739,6 +11848,8 @@ interface JoinRoomResponse {
11739
11848
  peers: PeerInfo[];
11740
11849
  /** 서버가 정한 역할 */
11741
11850
  is_broadcaster: boolean;
11851
+ /** 들어간 룸이 비공개 룸이면 true */
11852
+ private?: boolean;
11742
11853
  /** 참가는 됐지만 요청대로 되지 않은 사항 (예: `broadcaster_requires_auth`) */
11743
11854
  warning?: {
11744
11855
  code: string;
@@ -11777,7 +11888,14 @@ declare class WebRTCAPI {
11777
11888
  private currentRoomId;
11778
11889
  private currentPeerId;
11779
11890
  private currentUserId;
11780
- private isBroadcaster;
11891
+ /** connect 가 요청한 방송자 역할 (switchRoom 이 이어받는다) */
11892
+ private broadcasterRequested;
11893
+ /** 서버가 정한 방송자 역할 (`joined` 의 is_broadcaster) */
11894
+ private broadcasterGranted;
11895
+ /** 비공개 룸 허용 목록 요청 (이 연결에서만 쓴다) */
11896
+ private allowedMemberIds;
11897
+ private privateRoom;
11898
+ private warningListeners;
11781
11899
  private localStream;
11782
11900
  private channelType;
11783
11901
  private peerConnections;
@@ -11825,6 +11943,11 @@ declare class WebRTCAPI {
11825
11943
  private handleAnswer;
11826
11944
  private handleICECandidate;
11827
11945
  private closePeerConnection;
11946
+ /**
11947
+ * 서버 error 메시지의 data 에서 안내 문구를 꺼낸다. 대부분은 문자열이지만 할당량, 동시접속 초과는
11948
+ * `{ error, message, ... }` 객체로 온다.
11949
+ */
11950
+ private static signalingErrorMessage;
11828
11951
  private sendSignaling;
11829
11952
  private handleDisconnect;
11830
11953
  private attemptReconnect;
@@ -11886,6 +12009,15 @@ declare class WebRTCAPI {
11886
12009
  * 현재 채널 타입 조회
11887
12010
  */
11888
12011
  getChannelType(): WebRTCMode;
12012
+ /**
12013
+ * 서버가 정한 방송자 역할인지 조회한다. 요청(`isBroadcaster: true`)과 다를 수 있다 — 익명 연결이나
12014
+ * 채널의 방송자 역할이 없는 회원은 시청자로 참가한다(`onWarning` 으로 이유가 온다).
12015
+ */
12016
+ isBroadcaster(): boolean;
12017
+ /**
12018
+ * 지금 룸이 회원 허용 목록이 있는 비공개 룸인지 조회한다.
12019
+ */
12020
+ isPrivateRoom(): boolean;
11889
12021
  /**
11890
12022
  * 원격 스트림 조회
11891
12023
  */
@@ -11914,6 +12046,17 @@ declare class WebRTCAPI {
11914
12046
  * 에러 이벤트
11915
12047
  */
11916
12048
  onError(callback: (error: Error) => void): () => void;
12049
+ /**
12050
+ * 서버가 join 요청을 바꿨다는 알림 이벤트 (예: 방송자 요청을 시청자로 낮춤)
12051
+ *
12052
+ * @example
12053
+ * ```typescript
12054
+ * cb.webrtc.onWarning(({ code, message }) => {
12055
+ * if (code === 'broadcaster_role_required') showToast(message)
12056
+ * })
12057
+ * ```
12058
+ */
12059
+ onWarning(callback: (warning: WebRTCWarning) => void): () => void;
11917
12060
  /**
11918
12061
  * 피어 참가 이벤트
11919
12062
  */
@@ -11928,6 +12071,7 @@ declare class WebRTCAPI {
11928
12071
  onRemoteStream(callback: (peerId: string, stream: MediaStream) => void): () => void;
11929
12072
  private setState;
11930
12073
  private emitError;
12074
+ private emitWarning;
11931
12075
  private emitPeerJoined;
11932
12076
  private emitPeerLeft;
11933
12077
  private emitRemoteStream;
@@ -12424,4 +12568,4 @@ declare class ConnectBase {
12424
12568
  updateConfig(config: Partial<ConnectBaseConfig>): void;
12425
12569
  }
12426
12570
 
12427
- export { AIAPI, type AIChatOptions, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, AIError, type AIErrorCode, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AcceptInvitationResponse, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppMemberDetail, type AppMemberIdentityDetail, type AppMemberIdentitySummary, type AppMemberList, type AppMemberListItem, type AppMemberProviderType, AppMembersAPI, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanPreview, type ChangePlanRequest, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionOptions, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateCheckoutSessionWithAmount, type CreateCheckoutSessionWithProduct, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateLobbyRequest, type CreateOrganizationRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionRequest, type CreateTableRequest, type CreateTopicOptions, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteBillingKeyResponse, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListAppMembersOptions, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberChangePasswordRequest, type MemberCredentialMessageResponse, type MemberEmailVerificationConfirmRequest, type MemberEmailVerificationConfirmResponse, type MemberEmailVerificationRequest, type MemberInfoResponse, type MemberPasswordResetConfirmRequest, type MemberPasswordResetRequest, type MemberRedirectOption, type MemberSession, type MemberSessionList, type MemberSessionRevokeResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type Organization, type OrganizationContext, type OrganizationInvitation, type OrganizationMember, type OrganizationMemberList, type OrganizationRole, OrganizationsAPI, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PostponeBillingRequest, type PreparePaymentOptions, type PreparePaymentRequest, type PreparePaymentResponse, type PreparePaymentWithAmount, type PreparePaymentWithProduct, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type PushTopicInfo, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, RealtimeConnectionError, type RealtimeConnectionErrorCode, type RealtimeMessage, RealtimeRequestError, type RealtimeSendPolicy, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type RotatePublicKeyRequest, type RotatePublicKeyResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptLogEntry, type ScriptLogsResponse, type ScriptMeta, type ScriptMetricsResponse, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SuspendAppMemberOptions, type SuspendAppMemberResult, type SyncLostMessage, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UnsuspendAppMemberResult, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdateOrganizationRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageAccessLevel, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toAIError, toCreateRoomWire };
12571
+ export { AIAPI, type AIChatOptions, type AIChatRequest, type AIChatResponse, type AIChatStreamCallbacks, type AIChatStreamOptions, AIError, type AIErrorCode, type AIMessage, type AISource, type AIStreamChunk, type AITool, type AIToolCall, type AIToolEvent, AUTH_MEMBER_ID_TOKEN, type AcceptInvitationResponse, type AckMessagesRequest, type AdMobDailyReport, type AdMobReportResponse, type AdMobReportSummary, type AdReportResponse, type AdReportSummary, type AdmobConnectionInfo, AdsAPI, type AdsenseConnectionInfo, type AgenticSearchProgress, type AggregateResult, type AggregateStage, type AnalyticsConfig, type AnalyticsEvent, ApiError, type ApiErrorDetail, type AppMemberDetail, type AppMemberIdentityDetail, type AppMemberIdentitySummary, type AppMemberList, type AppMemberListItem, type AppMemberProviderType, AppMembersAPI, type AppStatsResponse, type ArchivePolicy, type AtomicOperator, type AtomicOperatorType, AuthError, type AuthSettingsResponse, type BackupInfo, type BatchOperation, type BatchOperationResult, type BatchSetPageMetaRequest, type BatchWriteResult, type BillingCycle, type BillingKeyResponse, type BiometricInfo, type BiometricResult, type BulkCreateResponse, type BulkError, type CPUInfo, type CancelPaymentRequest, type CancelPaymentResponse, type CancelSubscriptionRequest, type CategoryInfo, type ChangePlanOptions, type ChangePlanPreview, type ChangePlanRequest, type ChangePlanWithPriceRef, type ChangePlanWithProduct, type Channel, type ChannelMembership, type ChannelStats, type ChargeWithBillingKeyAmount, type ChargeWithBillingKeyOptions, type ChargeWithBillingKeyProduct, type ChargeWithBillingKeyRequest, type ChargeWithBillingKeyResponse, type ChatMessage, type ClientMessage, type ColumnSchema, type CommentListResponse, type CompleteUploadRequest, type CompleteUploadResponse, type ConfirmBillingKeyRequest, type ConfirmPaymentRequest, type ConfirmPaymentResponse, ConnectBase, type ConnectBaseConfig, type ConnectedData, type ConnectionState, type ConsentOptions, type ConsumeMessagesResponse, type ConsumeOptions, type CopyTableRequest, type CopyTableResponse, type CreateBackupRequest, type CreateChannelRequest, type CreateCheckoutSessionOptions, type CreateCheckoutSessionRequest, type CreateCheckoutSessionResponse, type CreateCheckoutSessionWithAmount, type CreateCheckoutSessionWithProduct, type CreateColumnRequest, type CreateDataRequest, type CreateDocumentRequest, type CreateFolderRequest, type CreateFolderResponse, type CreateGeoIndexRequest, type CreateIndexRequest, type CreateInvitationRequest, type CreateInvitationResponse, type CreateLobbyRequest, type CreateOrganizationRequest, type CreatePlaylistRequest, type CreatePublicKeyRequest, type CreatePublicKeyResponse, type CreateRelationRequest, type CreateRolePayload, type CreateRoleResult, type CreateRoomResult, type CreateSearchIndexRequest, type CreateSecurityRuleRequest, type CreateSubscriptionOptions, type CreateSubscriptionRequest, type CreateSubscriptionWithAmount, type CreateSubscriptionWithProduct, type CreateTableRequest, type CreateTopicOptions, type CreateTriggerRequest, type CreateVideoStorageRequest, type DailyReport, type DataItem, type DataType, type DatabaseChange, type DatabaseChangeMessage, type DatabaseChangeType, type DatabaseRealtimeConnectOptions, type DatabaseRealtimeFilter, type DatabaseRealtimeHandlers, type DatabaseRealtimeSubscription, type DatabaseSnapshot, type DatabaseSnapshotMessage, type DatabaseSubscribeOptions, type DeleteBillingKeyResponse, type DeleteWhereResponse, type DeviceInfo, type DocumentResponse, type EnabledProviderInfo, type EnabledProvidersResponse, EndpointAPI, type EndpointCallInit, type ErrorHandler, type ErrorMessage, type ErrorReport, type ErrorTrackerConfig, type ErrorType, type ExportDataRequest, type ExportDataResponse, type FetchDataResponse, type FetchFilesResponse, type FetchPublicKeysResponse, type FileItem, type FileStats, GameAPI, type GameAction, type GameClientConfig, type GameConfig, GameConfigAPI, type GameConfigPatch, type GameConnectionState, type GameConnectionStatus, type GameDelta, GameError, type GameErrorCode, type GameEventHandlers, type GamePlayer, GameRoom, type GameRoomConfig, type GameRoomInfo, GameRoomTransport, type GameServerMessage, type GameServerMessageType, type GameState, type GameTransportConfig, type GenerateUploadURLByPathRequest, type GenerateUploadURLRequest, type GenerateUploadURLResponse, type GeoBoundingBox, type GeoIndex, type GeoNear, type GeoPoint, type GeoPolygon, type GeoQuery, type GeoResponse, type GeoResult, type GetAuthorizationURLResponse, type GetFileByPathResponse, type GoogleConnectionStatus, type HistoryResponse, type ICEServer, type ICEServersResponse, type ImageResult, type ImportDataRequest, type ImportDataResponse, type IndexAnalysis, type IndexRecommendation, type InitUploadResponse, type InvokeFunctionRequest, type InvokeFunctionResponse, type IssueBillingKeyRequest, type IssueBillingKeyResponse, type JoinQueueRequest, type JoinRoomRequest, type JoinRoomResponse, type KnowledgeSearchRequest, type KnowledgeSearchResponse, type KnowledgeSearchResult, type LeaderboardEntry, type LeaderboardListResponse, type LeaderboardScoreEntry, type LifecyclePolicy, type ListAppMembersOptions, type ListBillingKeysResponse, type ListDocumentsResponse, type ListPageMetasOptions, type ListPageMetasResponse, type ListPaymentsOptions, type ListSubscriptionPaymentsRequest, type ListSubscriptionPaymentsResponse, type ListSubscriptionsRequest, type ListSubscriptionsResponse, type LobbyInfo, type LobbyInvite, type LobbyMember, type LobbyVisibility, type MatchResult, type MatchmakingTicket, type MatchqueueListResponse, type MatchqueueTicket, type MemberChangePasswordRequest, type MemberCredentialMessageResponse, type MemberEmailVerificationConfirmRequest, type MemberEmailVerificationConfirmResponse, type MemberEmailVerificationRequest, type MemberInfoResponse, type MemberPasswordResetConfirmRequest, type MemberPasswordResetRequest, type MemberRedirectOption, type MemberSession, type MemberSessionList, type MemberSessionRevokeResponse, type MemberSignInRequest, type MemberSignInResponse, type MemberSignUpRequest, type MemberSignUpResponse, type MembershipTier, type MemoryInfo, type MessageHandler, type MigrateDataRequest, type MigrateDataResponse, type MoveFileRequest, type NackMessageRequest, NativeAPI, type OAuthCallbackResponse, type OAuthProvider, type OnPaymentFailure, type OpenDialogOptions, type OpenDialogResult, type Organization, type OrganizationContext, type OrganizationInvitation, type OrganizationMember, type OrganizationMemberList, type OrganizationRole, OrganizationsAPI, type PageMetaResponse, type PartyInfo, type PartyInvite, type PartyMember, type PauseSubscriptionRequest, type PaymentDetail, type PaymentListItem, type PaymentListResult, type PaymentMode, type PaymentProvider, type PaymentStatus, type PeerInfo, type Platform, type PlayerEvent, type PlayerStats, type Playlist, type PlaylistItem, type PollUntilOptions, type PongMessage, type PopulateOption, type Position, type PostponeBillingRequest, type PreparePaymentOptions, type PreparePaymentRequest, type PreparePaymentResponse, type PreparePaymentWithAmount, type PreparePaymentWithProduct, type PresenceChangeHandler, type PresenceInfo, type PresenceSetOptions, type PresenceStatus, type PresenceStatusResult, type ProrationMode, type PublicKeyItem, type PublicKeyPaymentMode, type PublishBatchRequest, type PublishBatchResponse, type PublishMessageRequest, type PublishMessageResponse, type PushPlatform, type PushStatsResult, type PushTopicInfo, type QualityProgress, type QueryOptions, type QueueInfoResponse, type QueueMessage, type ReadReceiptHandler, type ReadReceiptInfo, type RealtimeConnectOptions, RealtimeConnectionError, type RealtimeConnectionErrorCode, type RealtimeMessage, RealtimeRequestError, type RealtimeSendPolicy, type RegisterDeviceRequest, type RelationType, type RenameFileRequest, type RenameFileResponse, type ReplayHighlight, type ReplayInfo, type ReplayPlayerInfo, type RestoreBackupRequest, type RestoreBackupResponse, type RetentionPolicy, type RoleDetail, type RoleList, type RoleListItem, type RolePermissionItem, type RoleUserItem, RolesAPI, type RoomInfo, type RoomStaleMessage, type RoomSummary, type RoomsResponse, type RotatePublicKeyRequest, type RotatePublicKeyResponse, type SaveDialogOptions, type SaveDialogResult, type ScriptDetailResponse, type ScriptListResponse, type ScriptLogEntry, type ScriptLogsResponse, type ScriptMeta, type ScriptMetricsResponse, type ScriptVersion, type ScriptVersionListResponse, type SearchIndex, type SearchOptions, type SearchResponse, type SearchResult, type SecurityRule, type SendOptions, type SendSuperChatOptions, type SendSuperChatResponse, type ServerMessage, SessionManager, type SetPageMetaRequest, type Shorts, type ShortsListResponse, type SignalingMessage, type SignalingMessageType, type SlowQueryInfo, type SpectatorInfo, type SpectatorPlayerState, type SpectatorState, type SpeechRecognizeOptions, type SpeechResult, type StateChange, type StateChangeHandler, type StorageUploadOptions, type StorageUploadProgress, type StreamContentPart, type StreamDoneCallback, type StreamDoneData, type StreamErrorCallback, type StreamHandlers, type StreamImageURLPart, type StreamMessage, type StreamOptions, type StreamSession, type StreamTextPart, type StreamTokenCallback, type StreamToolCallCallback, type StreamToolResultCallback, type StreamURLResponse, type SubscribeOptions, type SubscribeTopicRequest, type SubscribedData, type Subscription, type SubscriptionPaymentResponse, type SubscriptionPaymentStatus, type SubscriptionResponse, type SubscriptionStatus, type SuperChat, type SuperChatType, type SuspendAppMemberOptions, type SuspendAppMemberResult, type SyncLostMessage, type SystemInfo, type TTLConfig, type TableAccessLevel, type TableColumnDef, type TableIndex, type TableRelation, type TableSchema, type TableSchemaDefinition, type TokenPersistence, type TransactionRead, type TransactionResult, type TransactionWrite, type TransactionWriteResult, type TranscodeStatus, type TransportType, type Trigger, type TriggerEvent, type TriggerHandlerType, type TypingChangeHandler, type TypingInfo, type UnsuspendAppMemberResult, type UpdateBillingKeyRequest, type UpdateChannelRequest, type UpdateColumnRequest, type UpdateCustomDataRequest, type UpdateCustomDataResponse, type UpdateDataRequest, type UpdateDocumentRequest, type UpdateLobbyRequest, type UpdateOrganizationRequest, type UpdatePublicKeyRequest, type UpdatePublicKeyResponse, type UpdateRolePayload, type UpdateSecurityRuleRequest, type UpdateSubscriptionRequest, type UpdateTriggerRequest, type UpdateVideoRequest, type UpdateVideoStorageRequest, type UploadByPathOptions, type UploadFileOptions, type UploadFileResponse, type UploadOptions, type UploadProgress, type VAPIDPublicKeyResponse, type ValidateResponse, type ValidationSchema, type ValidationSchemaField, type ValidationStateTransitions, type Video, type VideoComment, type VideoCompleteUploadResponse, type VideoListOptions, type VideoListResponse, VideoProcessingError, type VideoQuality, type VideoStatus, type VideoStorage, type VideoStorageAccessLevel, type VideoStorageListResponse, type VideoVisibility, type VoiceChannel, type VoiceMember, type WaitOptions, type WatchHistoryItem, type WebPushSubscription, type WebRTCConnectOptions, type WebRTCConnectionState, type WebRTCMode, type WebRTCWarning, type WhereCondition, type WhereOperator, ConnectBase as default, detectInAppBrowser, escapeToExternalBrowser, isWebTransportSupported, toAIError, toCreateRoomWire };