@eulerstream/euler-api-sdk
Version:
Node.js module for interacting with the Euler Stream TikTok LIVE API.
1,842 lines (1,841 loc) • 284 kB
TypeScript
import * as _$axios from "axios";
import { AxiosInstance, AxiosPromise, RawAxiosRequestConfig } from "axios";
//#region src/sdk/configuration.d.ts
/**
* Euler Stream Sign API
* Sign Server API Documentation
*
* The version of the OpenAPI document: dev
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
interface AWSv4Configuration {
options?: {
region?: string;
service?: string;
};
credentials?: {
accessKeyId?: string;
secretAccessKey?: string;
sessionToken?: string;
};
}
interface ConfigurationParameters {
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
username?: string;
password?: string;
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
awsv4?: AWSv4Configuration;
basePath?: string;
serverIndex?: number;
baseOptions?: any;
formDataCtor?: new () => any;
}
declare class Configuration {
/**
* parameter for apiKey security
* @param name security name
*/
apiKey?: string | Promise<string> | ((name: string) => string) | ((name: string) => Promise<string>);
/**
* parameter for basic security
*/
username?: string;
/**
* parameter for basic security
*/
password?: string;
/**
* parameter for oauth2 security
* @param name security name
* @param scopes oauth2 scope
*/
accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string) | ((name?: string, scopes?: string[]) => Promise<string>);
/**
* parameter for aws4 signature security
* @param {Object} AWS4Signature - AWS4 Signature security
* @param {string} options.region - aws region
* @param {string} options.service - name of the service.
* @param {string} credentials.accessKeyId - aws access key id
* @param {string} credentials.secretAccessKey - aws access key
* @param {string} credentials.sessionToken - aws session token
* @memberof Configuration
*/
awsv4?: AWSv4Configuration;
/**
* override base path
*/
basePath?: string;
/**
* override server index
*/
serverIndex?: number;
/**
* base options for axios calls
*/
baseOptions?: any;
/**
* The FormData constructor that will be used to create multipart form data
* requests. You can inject this here so that execution environments that
* do not support the FormData class can still run the generated client.
*
* @type {new () => FormData}
*/
formDataCtor?: new () => any;
constructor(param?: ConfigurationParameters);
/**
* Check if the given MIME is a JSON MIME.
* JSON MIME examples:
* application/json
* application/json; charset=UTF8
* APPLICATION/JSON
* application/vnd.company+json
* @param mime - MIME (Multipurpose Internet Mail Extensions)
* @return True if the given MIME is JSON, false otherwise.
*/
isJsonMime(mime: string): boolean;
}
//#endregion
//#region src/sdk/base.d.ts
interface RequestArgs {
url: string;
options: RawAxiosRequestConfig;
}
declare class BaseAPI {
protected basePath: string;
protected axios: AxiosInstance;
protected configuration: Configuration | undefined;
constructor(configuration?: Configuration, basePath?: string, axios?: AxiosInstance);
}
//#endregion
//#region src/sdk/api.d.ts
interface Account {
'day': number;
'hour': number;
'minute': number;
'name': string;
'webhook_secret': string;
'max_alerts': number;
'max_websockets': number;
'expires_at': string | null;
'purchased_captcha_credits': number;
'updated_at': string;
'created_at': string;
'id': number;
}
interface AccountConfig {
'day': number;
'hour': number;
'minute': number;
'name': string;
'webhook_secret': string;
'max_alerts': number;
'max_websockets': number;
'expires_at': string | null;
}
declare const AccountScopes: {
readonly NUMBER_MINUS_1: -1;
readonly NUMBER_0: 0;
readonly NUMBER_1: 1;
readonly NUMBER_3: 3;
readonly NUMBER_10: 10;
readonly NUMBER_11: 11;
readonly NUMBER_8: 8;
readonly NUMBER_6: 6;
readonly NUMBER_12: 12;
readonly NUMBER_13: 13;
readonly NUMBER_14: 14;
readonly NUMBER_15: 15;
readonly NUMBER_16: 16;
};
type AccountScopes = typeof AccountScopes[keyof typeof AccountScopes];
interface AccountWithPermissionsSafe {
'day': number;
'hour': number;
'minute': number;
'name': string;
'webhook_secret': string;
'max_alerts': number;
'max_websockets': number;
'expires_at': string | null;
'purchased_captcha_credits': number;
'updated_at': string;
'created_at': string;
'id': number;
'scopes': Array<AccountScopes>;
}
interface AccountsTableRequestLimits {
'day': number;
'hour': number;
'minute': number;
}
/**
* Public, snake_case response shape for an alert. The gRPC {@link LivePushAlert} model is camelCase; the public API has always exposed alerts in snake_case, so we convert before serializing. Only the field casing is changed here — types and field membership are left as-is.
*/
interface AlertResponseShape {
'id': number;
'account_id': number;
'alert_creator_id': number;
'read_only': boolean;
'enabled': boolean;
'alert_creator_username': string;
'created_at': string;
'updated_at': string;
/**
* @deprecated
*/
'alert_creator_avatar_url'?: string;
/**
* @deprecated
*/
'alert_creator_nickname'?: string;
}
/**
* Public, snake_case response shape for an alert target. Mirrors the legacy (`old-schema.json`) target shape as closely as the new gRPC {@link LivePushAlertTarget} model allows: field casing is converted, `metadata` is re-hydrated from the stored JSON string, the unix-ms timestamps are threaded back into ISO `created_at` / `updated_at`, and `alert_creator_id` is coerced to a number.
*/
interface AlertTargetResponseShape {
'id': number;
'account_id': number;
'alert_id': number;
'alert_creator_id': number;
'url': string;
'metadata': object;
'last_status': LivePushAlertTargetStatus;
'format': LivePushAlertTargetFormat;
'created_at': string;
'updated_at': string;
}
interface ApiKey {
'name': string;
'value': string;
'account_id': number;
'updated_at': string;
'created_at': string;
'id': number;
}
interface ApiKeyConfig {
'name': string;
'value': string;
'account_id': number;
}
interface CaptchaCreditsResponse {
'code': number;
'message'?: string;
'credits': number;
}
/**
* Configuration for the alert
*/
interface CreateAlertRequest {
'unique_id': string;
}
interface CreateAlertResponse {
'code': number;
'message'?: string;
'alert'?: AlertResponseShape;
}
interface CreateAlertTargetPayload {
'url': string;
/**
* Construct a type with a set of properties K of type T
*/
'metadata'?: {
[key: string]: any;
};
}
interface CreateAlertTargetResponse {
'code': number;
'message'?: string;
'target'?: AlertTargetResponseShape;
}
interface CreateJWTResponse {
'code': number;
'message'?: string;
'token'?: string;
'config'?: JWTConfig;
}
interface CreateKeyPayload {
'name': string;
}
interface CreateKeyResponse {
'code': number;
'message'?: string;
'key'?: ApiKey;
}
interface DeleteAlertResponse {
'code': number;
'message'?: string;
}
interface DeleteAlertTargetResponse {
'code': number;
'message'?: string;
}
interface DeleteKeyResponse {
'code': number;
'message'?: string;
}
interface ExchangeTokenRequest {
'client_id': string;
'client_secret': string;
'grant_type': ExchangeTokenRequestGrantTypeEnum;
/**
* Required for authorization_code grant
*/
'code'?: string;
/**
* Required for authorization_code grant
*/
'redirect_uri'?: string;
/**
* Required for refresh_token grant
*/
'refresh_token'?: string;
}
declare const ExchangeTokenRequestGrantTypeEnum: {
readonly AuthorizationCode: "authorization_code";
readonly RefreshToken: "refresh_token";
};
type ExchangeTokenRequestGrantTypeEnum = typeof ExchangeTokenRequestGrantTypeEnum[keyof typeof ExchangeTokenRequestGrantTypeEnum];
interface GetPublicClientResponse {
'code': number;
'message'?: string;
'client'?: PublicOAuthClientInfo;
}
interface GetRateLimits {
'code': number;
'message'?: string;
'day'?: RateLimitInfo;
'hour'?: RateLimitInfo;
'minute'?: RateLimitInfo;
}
/**
* Friendly catalog sort options, mapped to the gifts-server enum below.
*/
declare const GiftCatalogOrderBy: {
readonly Price: "price";
readonly Name: "name";
};
type GiftCatalogOrderBy = typeof GiftCatalogOrderBy[keyof typeof GiftCatalogOrderBy];
/**
* Per-gift sponsorship progress entry (`data.current_user_progress[giftId]`).
*/
interface GiftGalleryProgressItem {
'sponsor_id': number;
'sponsor_count': number;
'left_count_to_sponsor': number;
'current_count': number;
'can_sponsor': boolean;
}
/**
* Current sponsor of a gallery gift (`normal_gifts[].sponsor_info`).
*/
interface GiftGallerySponsorInfo {
'user_has_optout': boolean;
'sponsor_id': string;
'sent_count': number;
'nickname': string;
'last_send_time_sec': number;
'became_sponsor_times': number;
'avatar_image': string;
'anchor_has_followed': boolean;
}
interface GiftOverride {
'is_displayed_on_panel'?: boolean;
'is_gallery_gift'?: boolean;
'gift_sponsor_info'?: GiftOverrideGiftSponsorInfo;
}
interface GiftOverrideGiftSponsorInfo {
'current_count': number;
'can_sponsor': boolean;
'left_count_to_sponsor': number;
'sponsor_count': number;
'sponsor_id': number;
}
interface HashtagListAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastHashtagListRouteOutput;
}
interface HostsResponse {
'code': number;
'message'?: string;
'hosts'?: Array<PeerPresence>;
}
interface IconCaptchaResponse {
'response': IconsResult | null;
'cached': boolean;
'code': number;
'message'?: string;
}
interface IconsResult {
'time_ms': number;
'points': Array<Point>;
'label': string;
}
interface IntrospectRequestBody {
'token': string;
'token_type_hint'?: IntrospectRequestBodyTokenTypeHintEnum;
'client_id': string;
'client_secret': string;
}
declare const IntrospectRequestBodyTokenTypeHintEnum: {
readonly AccessToken: "access_token";
readonly RefreshToken: "refresh_token";
};
type IntrospectRequestBodyTokenTypeHintEnum = typeof IntrospectRequestBodyTokenTypeHintEnum[keyof typeof IntrospectRequestBodyTokenTypeHintEnum];
/**
* RFC 7662 Token Introspection response
*/
interface IntrospectionResponse {
'active': boolean;
'scope'?: string;
'client_id'?: string;
'token_type'?: IntrospectionResponseTokenTypeEnum;
'exp'?: number;
'iat'?: number;
'sub'?: string;
}
declare const IntrospectionResponseTokenTypeEnum: {
readonly Bearer: "Bearer";
};
type IntrospectionResponseTokenTypeEnum = typeof IntrospectionResponseTokenTypeEnum[keyof typeof IntrospectionResponseTokenTypeEnum];
interface JSONResponse {
'code': number;
'message'?: string;
}
interface JWTConfig {
'id': string;
'expiresAt': number;
'ttl': number;
'accountId': number;
'apiKeyId': number;
'limits': AccountsTableRequestLimits;
'webSocketData': JWTConfigWebSocketData;
'name': string | null;
}
interface JWTConfigWebSocketData {
'encryptedOAuthToken'?: string;
'encryptedTtTargetIdc'?: string;
'encryptedSessionId'?: string;
'allowedCreators': Array<string> | null;
'maxWebSockets': number;
}
interface JWTCreateConfig {
'limits'?: AccountsTableRequestLimits | null;
'websockets'?: JWTCreateConfigWebSocketData | null;
'expireAfter': number;
'name'?: string;
}
interface JWTCreateConfigWebSocketData {
'oauthToken'?: string;
'ttTargetIdc'?: string;
'sessionId'?: string;
'allowedCreators': Array<string> | null;
'maxWebSockets': number;
}
interface ListAlertTargetsResponse {
'code': number;
'message'?: string;
'targets'?: Array<AlertTargetResponseShape>;
}
interface ListAlertsResponse {
'code': number;
'message'?: string;
'alerts'?: Array<AlertResponseShape>;
'hasMore': boolean;
}
interface ListKeysResponse {
'code': number;
'message'?: string;
'keys'?: Array<ApiKey>;
}
interface LiveAnalyticsUserInteractionsAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastLiveAnalyticsUserInteractionsRouteOutput;
}
interface LiveAnalyticsVideoDetailAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastLiveAnalyticsVideoDetailRouteOutput;
}
interface LiveAnalyticsVideoListAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastLiveAnalyticsVideoListRouteOutput;
}
declare const LivePushAlertTargetFormat: {
readonly NUMBER_0: 0;
readonly NUMBER_1: 1;
readonly NUMBER_MINUS_1: -1;
};
type LivePushAlertTargetFormat = typeof LivePushAlertTargetFormat[keyof typeof LivePushAlertTargetFormat];
declare const LivePushAlertTargetStatus: {
readonly NUMBER_0: 0;
readonly NUMBER_1: 1;
readonly NUMBER_4: 4;
readonly NUMBER_MINUS_1: -1;
};
type LivePushAlertTargetStatus = typeof LivePushAlertTargetStatus[keyof typeof LivePushAlertTargetStatus];
/**
* Mute duration in seconds
*/
declare const MuteDuration: {
readonly NUMBER_MINUS_1: -1;
readonly NUMBER_5: 5;
readonly NUMBER_30: 30;
readonly NUMBER_60: 60;
readonly NUMBER_300: 300;
};
type MuteDuration = typeof MuteDuration[keyof typeof MuteDuration];
/**
* An entry of `data.normal_gifts` — a sponsorable gallery gift.
*/
interface NormalGiftItem {
'unlighted_image_url': string;
'swapped': boolean;
'sponsorship_require_count': number;
'sponsored': boolean;
'sponsor_rank': Array<any>;
'sponsor_info': GiftGallerySponsorInfo;
'name': string;
'is_sponsor': boolean;
'image_url': string;
'goal_count': number;
'gift_id': string;
'gallery_gift_tag_url': string;
'gallery_gift_tag_type': number;
'current_sent_count': number;
'coin_price': number;
'can_sponsor': boolean;
/**
* Construct a type with a set of properties K of type T
*/
'biz_extra': {
[key: string]: any;
};
}
declare const OAuthClientMode: {
readonly Dark: "dark";
readonly Light: "light";
readonly Auto: "auto";
};
type OAuthClientMode = typeof OAuthClientMode[keyof typeof OAuthClientMode];
interface OAuthIntrospectResponse {
'code': number;
'message'?: string;
'data'?: IntrospectionResponse;
'error'?: TokenErrorResponse;
}
interface OAuthRevokeResponse {
'code': number;
'message'?: string;
'error'?: TokenErrorResponse;
}
declare const OAuthScope: {
readonly WebcastFetch: "webcast:fetch";
readonly WebcastRankings: "webcast:rankings";
readonly WebcastBulkLiveCheck: "webcast:bulk_live_check";
readonly WebcastUserEarnings: "webcast:user_earnings";
readonly WebcastSignUrl: "webcast:sign_url";
readonly WebcastChat: "webcast:chat";
readonly WebcastMute: "webcast:mute";
readonly WebcastBan: "webcast:ban";
readonly WebcastComments: "webcast:comments";
readonly WebcastModerators: "webcast:moderators";
readonly WebcastLiveAnalytics: "webcast:live_analytics";
readonly UserConsents: "user:consents";
readonly UserInfo: "user:info";
readonly WebcastSensitiveWords: "webcast:sensitive_words";
};
type OAuthScope = typeof OAuthScope[keyof typeof OAuthScope];
interface OAuthTokenResponse {
'code': number;
'message'?: string;
'data'?: TokenResponse;
'error'?: TokenErrorResponse;
}
interface OAuthUserInfoResponse {
'code': number;
'message'?: string;
'user'?: TikTokOAuthUserInfo;
}
/**
* Make all properties in T optional
*/
interface PartialAvatarUrlStringNicknameStringSecUidStringNumericUidStringSignatureStringIsVerifiedBooleanFollowingNumberFollowersNumber {
'avatar_url'?: string;
'nickname'?: string;
'sec_uid'?: string;
'numeric_uid'?: string;
'signature'?: string;
'is_verified'?: boolean;
'following'?: number;
'followers'?: number;
}
/**
* Make all properties in T optional
*/
interface PartialSignedUrlStringUserAgentStringBrowserNameStringBrowserVersionStringTokensRecordStringStringRequestHeadersRecordStringStringCookiesRecordStringStringArray {
'signedUrl'?: string;
'userAgent'?: string;
'browserName'?: string;
'browserVersion'?: string;
/**
* Construct a type with a set of properties K of type T
*/
'tokens'?: {
[key: string]: string;
};
/**
* Construct a type with a set of properties K of type T
*/
'requestHeaders'?: {
[key: string]: string;
};
'cookies'?: Array<{
[key: string]: string;
}>;
}
/**
* Make all properties in T optional
*/
interface PartialStatusNumberIsLiveBooleanIdStringCoverUrlStringTitleStringStartTimeNumberCurrentViewersNumberTotalViewersNumberHlsPullUrlStringFlvPullUrlStringHlsPullUrlLdStringFlvPullUrlLdString {
'status'?: number;
'is_live'?: boolean;
'id'?: string;
'cover_url'?: string;
'title'?: string;
'start_time'?: number;
'current_viewers'?: number;
'total_viewers'?: number;
'hls_pull_url'?: string;
'flv_pull_url'?: string;
'hls_pull_url_ld'?: string;
'flv_pull_url_ld'?: string;
}
/**
* Make all properties in T optional
*/
interface PartialWebcastRegionRankingsOutputRank {
'rank'?: number;
'diamonds'?: number;
'diamonds_description'?: string;
'room_id'?: string;
'user'?: PartialWebcastRegionRankingsOutputRankUser;
}
interface PartialWebcastRegionRankingsOutputRankUser {
'following_count': number;
'follower_count': number;
'nickname': string;
'numeric_id': string;
'unique_id': string;
'avatar_thumb': Array<string>;
}
interface PeerPresence {
'lastSeen': number;
'role': PeerRole;
'id': string;
'type': PeerPresenceTypeEnum;
}
declare const PeerPresenceTypeEnum: {
readonly Api: "api";
readonly Agent: "agent";
};
type PeerPresenceTypeEnum = typeof PeerPresenceTypeEnum[keyof typeof PeerPresenceTypeEnum];
declare const PeerRole: {
readonly Public: "public";
readonly Enterprise: "enterprise";
readonly Staging: "staging";
};
type PeerRole = typeof PeerRole[keyof typeof PeerRole];
interface PipResponse {
'code': number;
'message'?: string;
'image_url': string;
'label': string;
'value': number;
'unit': string;
}
interface Pips200Response {
'code': number;
'message'?: string;
'image_url': string;
'label': string;
'value': number;
'unit': string;
}
/**
* Captcha Server No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) The version of the OpenAPI document: 0.1 NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). https://openapi-generator.tech Do not edit the class manually.
*/
interface Point {
'x': number;
'y': number;
}
/**
* Region enum shared across providers that route through the pooled DC vendors. Lives in its own file (with zero imports) so consumers can load it without dragging in `pooled-dc.ts`\'s singleton init — which itself depends on `OculusDc` / `OxyLabsDc` and would otherwise close a module-init cycle the bundler resolves into a TDZ violation.
*/
declare const PooledProxyRegion: {
readonly Us: "US";
readonly Gb: "GB";
readonly De: "DE";
readonly Ro: "RO";
readonly Es: "ES";
readonly Be: "BE";
readonly Fr: "FR";
readonly Ca: "CA";
readonly Jp: "JP";
readonly Br: "BR";
readonly Mx: "MX";
readonly Co: "CO";
readonly Ar: "AR";
readonly Cl: "CL";
readonly Au: "AU";
readonly Kr: "KR";
readonly Pe: "PE";
readonly Pl: "PL";
readonly Sg: "SG";
readonly It: "IT";
readonly Id: "ID";
readonly Th: "TH";
readonly Sa: "SA";
readonly Il: "IL";
readonly Nl: "NL";
readonly Ie: "IE";
readonly Pt: "PT";
readonly Gr: "GR";
readonly At: "AT";
readonly Ch: "CH";
readonly Hu: "HU";
readonly Sk: "SK";
readonly Dk: "DK";
readonly No: "NO";
readonly Se: "SE";
readonly Nz: "NZ";
};
type PooledProxyRegion = typeof PooledProxyRegion[keyof typeof PooledProxyRegion];
interface PublicOAuthClientInfo {
'client_id': string;
'name': string;
'description': string | null;
'redirect_uris': Array<string>;
'supported_scopes': Array<OAuthScope>;
'theme': string | null;
'mode': OAuthClientMode | null;
'logo': string | null;
}
interface PuzzleCaptchaResponse {
'response': PuzzleResult | null;
'cached': boolean;
'code': number;
'message'?: string;
}
/**
* Captcha Server No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) The version of the OpenAPI document: 0.1 NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech). https://openapi-generator.tech Do not edit the class manually.
*/
interface PuzzleResult {
'time_ms': number;
'x': number;
}
declare const RankingLeagueLevel: {
readonly NUMBER_100: 100;
readonly NUMBER_200: 200;
readonly NUMBER_300: 300;
readonly NUMBER_400: 400;
readonly NUMBER_500: 500;
readonly NUMBER_600: 600;
readonly NUMBER_700: 700;
readonly NUMBER_800: 800;
readonly NUMBER_900: 900;
readonly NUMBER_1000: 1000;
readonly NUMBER_1100: 1100;
readonly NUMBER_1200: 1200;
readonly NUMBER_1300: 1300;
readonly NUMBER_1400: 1400;
readonly NUMBER_1500: 1500;
readonly NUMBER_1800: 1800;
readonly NUMBER_1900: 1900;
readonly NUMBER_2000: 2000;
};
type RankingLeagueLevel = typeof RankingLeagueLevel[keyof typeof RankingLeagueLevel];
interface RateLimitInfo {
'max': number;
'remaining': number;
'reset_at': string | null;
}
declare const RateLimitType: {
readonly Webcast: "WEBCAST";
readonly Alerts: "ALERTS";
readonly RateLimits: "RATE_LIMITS";
readonly Rankings: "RANKINGS";
};
type RateLimitType = typeof RateLimitType[keyof typeof RateLimitType];
/**
* Construct a type with a set of properties K of type T
*/
interface RecordStreamTypeStringOrUndefined {
'hls_ld': string;
'hls_sd': string;
'flv_ld': string;
'flv_sd': string;
}
interface RecordStringBooleanOrNumberValue {}
interface RecordStringIsLiveBooleanRoomIdStringOrNullValue {
'room_id': string;
'is_live': boolean;
}
interface RetrieveAccountResponse {
'code': number;
'message'?: string;
'account'?: AccountWithPermissionsSafe;
}
interface RetrieveAgentHostsResponse {
'code': number;
'message'?: string;
'agents': Array<PeerPresence>;
}
interface RetrieveAlertResponse {
'code': number;
'message'?: string;
'alert'?: AlertResponseShape;
'creator'?: RetrieveAlertResponseCreator;
}
interface RetrieveAlertResponseCreator {
'last_nickname': string | null;
'last_avatar_url': string | null;
'room_id': string | null;
'state_label': string;
'state': number;
'unique_id': string;
}
interface RetrieveBulkLiveCheckPayload {
'user_numeric_ids': Array<string>;
}
interface RetrieveBulkLiveCheckPayloadV1 {
'user_numeric_ids': Array<string>;
/**
* @deprecated
*/
'session_id'?: string;
/**
* @deprecated
*/
'tt_target_idc'?: string;
}
/**
* The body of the request containing user numeric IDs (e.g. 7602356191083907865).
*/
interface RetrieveBulkLiveCheckRequest {
'user_numeric_ids': Array<string>;
/**
* @deprecated
*/
'session_id'?: string;
/**
* @deprecated
*/
'tt_target_idc'?: string;
}
interface RetrieveBulkLiveCheckResponse {
'code': number;
'message'?: string;
'response'?: WebcastIsLiveOutput;
}
interface RetrieveKeyResponse {
'code': number;
'message'?: string;
'key'?: ApiKey;
}
interface RetrieveRoomCoverResponse {
'code': number;
'message'?: string;
'cover_url'?: string;
}
interface RetrieveRoomVideoResponse {
'code': number;
'message'?: string;
'pullMap'?: RecordStreamTypeStringOrUndefined;
}
interface RetrieveWebSocketRouteResponse {
'code': number;
'message'?: string;
'state'?: WebSocketState;
}
interface RetrieveWebSocketState429Response {
'code': number;
'message': string;
}
interface RetrieveWebSocketsRouteResponse {
'code': number;
'message'?: string;
'webSocketIds'?: Array<string>;
'connections'?: number;
}
interface RevokeRequestBody {
'token': string;
'token_type_hint'?: RevokeRequestBodyTokenTypeHintEnum;
'client_id': string;
'client_secret': string;
}
declare const RevokeRequestBodyTokenTypeHintEnum: {
readonly AccessToken: "access_token";
readonly RefreshToken: "refresh_token";
};
type RevokeRequestBodyTokenTypeHintEnum = typeof RevokeRequestBodyTokenTypeHintEnum[keyof typeof RevokeRequestBodyTokenTypeHintEnum];
interface RoomAddSensitiveWordAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomAddSensitiveWordRouteOutput;
}
interface RoomAdminUpdateAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomAdminUpdateRouteOutput;
}
interface RoomCommentsToggleAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomCommentsToggleRouteOutput;
}
interface RoomDelSensitiveWordAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomDelSensitiveWordRouteOutput;
}
interface RoomGetSensitiveWordsAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomGetSensitiveWordRouteOutput;
}
interface RoomGiftsResponse {
'code': number;
'message'?: string;
'response'?: RoomGiftsResult;
}
interface RoomGiftsResult {
'room_id': string;
'page_gifts': Array<number>;
/**
* Construct a type with a set of properties K of type T
*/
'gift_overrides': {
[key: string]: GiftOverride;
};
/**
* Construct a type with a set of properties K of type T
*/
'panel_refresh_data'?: {
[key: string]: any;
};
}
interface RoomKickUserAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomKickUserRouteOutput;
}
interface RoomKickedUsersAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomKickedUsersRouteOutput;
}
interface RoomModeratorsAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomAdminListRouteOutput;
}
interface RoomMuteUserAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomMuteUserRouteOutput;
}
interface RoomMutedUsersAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomMutedUsersRouteOutput;
}
interface RoomUnkickUserAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomUnkickUserRouteOutput;
}
interface RoomUnmuteUserAPIResponse {
'code': number;
'message'?: string;
'response'?: WebcastRoomUnmuteUserRouteOutput;
}
/**
* The payload configuration for sending a chat
*/
interface SendRoomChatRequest {
/**
* The chat message content to send
*/
'content': string;
/**
* @deprecated
*/
'targetRoomId'?: string;
/**
* The username of the room to send the chat to (either this or targetRoomId is required). Pass room_id = 0 to parameter for this to work.
*/
'targetUniqueId'?: string;
/**
* @deprecated
*/
'sessionId'?: string;
/**
* @deprecated
*/
'ttTargetIdc'?: string;
/**
* @deprecated
*/
'roomId'?: string;
}
interface ShapesCaptchaResponse {
'response': ShapesResult | null;
'cached': boolean;
'code': number;
'message'?: string;
}
interface ShapesResult {
'time_ms': number;
'point_1': Point;
'point_2': Point;
}
interface SignTikTokUrlBody {
'url': string;
'userAgent'?: string;
'method'?: SignTikTokUrlBodyMethodEnum;
'sessionId'?: string;
'ttTargetIdc'?: string;
'ttwid'?: string;
'payload'?: string;
'type'?: SignTikTokUrlBodyTypeEnum;
'includeBrowserParams'?: boolean;
'includeVerifyFp'?: boolean;
}
declare const SignTikTokUrlBodyMethodEnum: {
readonly Get: "GET";
readonly Post: "POST";
readonly Options: "OPTIONS";
readonly Put: "PUT";
readonly Delete: "DELETE";
readonly Patch: "PATCH";
readonly Head: "HEAD";
};
type SignTikTokUrlBodyMethodEnum = typeof SignTikTokUrlBodyMethodEnum[keyof typeof SignTikTokUrlBodyMethodEnum];
declare const SignTikTokUrlBodyTypeEnum: {
readonly Fetch: "fetch";
readonly Xhr: "xhr";
};
type SignTikTokUrlBodyTypeEnum = typeof SignTikTokUrlBodyTypeEnum[keyof typeof SignTikTokUrlBodyTypeEnum];
interface SignTikTokUrlResponse {
'code': number;
'message'?: string;
'response'?: PartialSignedUrlStringUserAgentStringBrowserNameStringBrowserVersionStringTokensRecordStringStringRequestHeadersRecordStringStringCookiesRecordStringStringArray;
}
interface SolveResponseIconsResult {
'response': IconsResult | null;
'cached': boolean;
'code': number;
}
interface SolveResponsePuzzleResult {
'response': PuzzleResult | null;
'cached': boolean;
'code': number;
}
interface SolveResponseShapesResult {
'response': ShapesResult | null;
'cached': boolean;
'code': number;
}
interface SolveResponseWhirlResult {
'response': WhirlResult | null;
'cached': boolean;
'code': number;
}
declare const StreamType: {
readonly HlsLd: "hls_ld";
readonly HlsSd: "hls_sd";
readonly FlvLd: "flv_ld";
readonly FlvSd: "flv_sd";
};
type StreamType = typeof StreamType[keyof typeof StreamType];
interface TestAlertTargetResponse {
'code': number;
'message'?: string;
'status'?: LivePushAlertTargetStatus;
'statusLabel'?: string;
}
/**
* One gift row from the ClickHouse `tiktok_gifts` ReplacingMergeTree. Mirrors the searchable columns + the JSON `raw` blob (shipped as a UTF-8 JSON string here so consumers can decode lazily without re-encoding through protobuf any-types).
*/
interface TikTokGiftsServerGift {
'giftId': number;
'giftName': string;
'giftType': number;
'diamondCount': number;
'combo': boolean;
'forLinkMic': boolean;
'describe': string;
'duration': string;
'imageUri': string;
'updatedAt': string;
}
interface TikTokLiveUser {
'raw': TikTokLiveUserRaw;
'room_info'?: PartialStatusNumberIsLiveBooleanIdStringCoverUrlStringTitleStringStartTimeNumberCurrentViewersNumberTotalViewersNumberHlsPullUrlStringFlvPullUrlStringHlsPullUrlLdStringFlvPullUrlLdString;
'user'?: TikTokLiveUserUser;
'unique_id': string;
}
interface TikTokLiveUserRaw {
'_note': string;
}
interface TikTokLiveUserUser {
'avatar_url'?: string;
'nickname'?: string;
'sec_uid'?: string;
'numeric_uid'?: string;
'signature'?: string;
'is_verified'?: boolean;
'following'?: number;
'followers'?: number;
'unique_id': string;
}
interface TikTokOAuthUserInfo {
'uid'?: string;
'secUid'?: string;
'nickName'?: string;
'uniqueId'?: string;
'region'?: string;
'avatarUrl'?: string;
'roomId'?: string;
'hasLivePermission'?: boolean;
'isPrivateAccount'?: boolean;
}
/**
* Logical \"client name\" recorded against each request — supplied by the caller via the `metadata.client_name` RPC field. Free-form on the wire, but conventionally one of the values below.
*/
declare const TikTokSignLiveClient: {
readonly TtliveJava: "ttlive-java";
readonly TtliveNode: "ttlive-node";
readonly TtlivePython: "ttlive-python";
readonly TtliveNet: "ttlive-net";
readonly TtliveRust: "ttlive-rust";
readonly GotiktokLive: "gotiktok_live";
readonly TtliveCloudflare: "ttlive-cloudflare";
readonly TtliveOther: "ttlive-other";
readonly Internal: "internal";
};
type TikTokSignLiveClient = typeof TikTokSignLiveClient[keyof typeof TikTokSignLiveClient];
interface TokenErrorResponse {
'error': string;
'error_description'?: string;
}
interface TokenResponse {
'access_token': string;
'refresh_token': string;
'token_type': TokenResponseTokenTypeEnum;
/**
* Access token lifetime in seconds
*/
'expires_in': number;
/**
* Refresh token lifetime in seconds
*/
'refresh_expires_in': number;
'scopes': Array<OAuthScope>;
}
declare const TokenResponseTokenTypeEnum: {
readonly Bearer: "Bearer";
};
type TokenResponseTokenTypeEnum = typeof TokenResponseTokenTypeEnum[keyof typeof TokenResponseTokenTypeEnum];
interface UpdateKeyPayload {
'name': string;
}
interface UpdateKeyResponse {
'code': number;
'message'?: string;
'config'?: ApiKey;
}
interface ValidateRefreshRequest {
/**
* The refresh token to validate
*/
'refresh_token': string;
/**
* The OAuth client ID that issued the token
*/
'client_id': string;
}
interface ValidateRefreshResponse {
'code': number;
'message'?: string;
'valid': boolean;
'scopes'?: Array<OAuthScope>;
'tiktok_user_id'?: string | null;
'country_code'?: string | null;
}
interface WebSocketState {
'deployment': PeerRole;
'accountId': number;
'uniqueId': string;
'createdAt': number;
'apiKeyId': number;
'jwtHasSessionId': boolean;
'jwtName': string | null;
'jwtId': string | null;
'heartbeat': number;
'wsId': string;
}
interface WebcastFeedResponse {
'status_code': number;
'extra': WebcastFeedResponseExtra;
'data': Array<WebcastFeedResponseItem>;
}
interface WebcastFeedResponseExtra {
'now': number;
'unread_extra': string;
/**
* Construct a type with a set of properties K of type T
*/
'banner': {
[key: string]: any;
};
'total': number;
'max_time': number;
'cost': number;
'is_backup': number;
'has_more': boolean;
'log_pb': WebcastFeedResponseExtraLogPb;
}
interface WebcastFeedResponseExtraLogPb {
'impr_id': string;
}
interface WebcastFeedResponseHashtag {
'id': number;
'title': string;
'image': WebcastFeedResponseRoomDataFeedRoomLabel;
}
interface WebcastFeedResponseImage {
'url_list': Array<string>;
'uri': string;
}
interface WebcastFeedResponseItem {
'type': number;
'rid': string;
'data': WebcastFeedResponseRoomData;
/**
* Construct a type with a set of properties K of type T
*/
'flare_info': {
[key: string]: any;
};
'room_event_tracking': string;
}
interface WebcastFeedResponseRoomData {
'id': number;
'id_str': string;
'status': number;
'owner_user_id': number;
'title': string;
'user_count': number;
'client_version': number;
'cover': WebcastFeedResponseImage;
'stream_url': WebcastFeedResponseStreamUrl;
'stats': WebcastFeedResponseRoomDataStats;
'feed_room_label': WebcastFeedResponseRoomDataFeedRoomLabel;
'owner': WebcastFeedResponseUser;
'live_type_third_party'?: boolean;
/**
* Construct a type with a set of properties K of type T
*/
'room_auth': {
[key: string]: RecordStringBooleanOrNumberValue;
};
'like_count'?: number;
'anchor_tab_type': number;
/**
* Construct a type with a set of properties K of type T
*/
'commerce_info': {
[key: string]: any;
};
'hashtag'?: WebcastFeedResponseHashtag;
'live_room_mode'?: number;
/**
* Construct a type with a set of properties K of type T
*/
'stream_url_filtered_info': {
[key: string]: any;
};
'square_cover_img'?: WebcastFeedResponseRoomDataSquareCoverImg;
'rectangle_cover_img'?: WebcastFeedResponseRoomDataFeedRoomLabel;
'blurred_cover': WebcastFeedResponseRoomDataSquareCoverImg;
/**
* Construct a type with a set of properties K of type T
*/
'multi_stream_url': {
[key: string]: any;
};
'game_tag_detail'?: WebcastFeedResponseRoomDataGameTagDetail;
'taxonomy_tag_info'?: WebcastFeedResponseRoomDataTaxonomyTagInfo;
}
interface WebcastFeedResponseRoomDataFeedRoomLabel {
'url_list': Array<string>;
'uri': string;
'avg_color': string;
}
interface WebcastFeedResponseRoomDataGameTagDetail {
'display_name': string;
'starling_key': string;
'game_tag_name': string;
'game_tag_id': number;
}
interface WebcastFeedResponseRoomDataSquareCoverImg {
'url_list': Array<string>;
'uri': string;
'avg_color': string;
'width': number;
'height': number;
}
interface WebcastFeedResponseRoomDataStats {
'comment_count': number;
'share_count'?: number;
'enter_count': number;
/**
* Construct a type with a set of properties K of type T
*/
'user_count_composition'?: {
[key: string]: any;
};
'total_user': number;
}
interface WebcastFeedResponseRoomDataTaxonomyTagInfo {
'level2_tag': string;
'level1_tag'?: Array<string>;
}
interface WebcastFeedResponseStreamUrl {
'rtmp_pull_url': string;
'flv_pull_url': WebcastFeedResponseStreamUrlFlvPullUrl;
/**
* Construct a type with a set of properties K of type T
*/
'flv_pull_url_params'?: {
[key: string]: string;
};
'live_core_sdk_data'?: WebcastFeedResponseStreamUrlLiveCoreSdkData;
'stream_size_width': number;
'stream_size_height': number;
}
interface WebcastFeedResponseStreamUrlFlvPullUrl {
'SD1'?: string;
'SD2'?: string;
'HD1'?: string;
}
interface WebcastFeedResponseStreamUrlLiveCoreSdkData {
'pull_data': WebcastFeedResponseStreamUrlLiveCoreSdkDataPullData;
}
interface WebcastFeedResponseStreamUrlLiveCoreSdkDataPullData {
'options': WebcastFeedResponseStreamUrlLiveCoreSdkDataPullDataOptions;
'stream_data': string;
}
interface WebcastFeedResponseStreamUrlLiveCoreSdkDataPullDataOptions {
'default_quality': WebcastFeedResponseStreamUrlLiveCoreSdkDataPullDataOptionsDefaultQuality;
}
interface WebcastFeedResponseStreamUrlLiveCoreSdkDataPullDataOptionsDefaultQuality {
'sdk_key': string;
'name': string;
}
interface WebcastFeedResponseUser {
'id': number;
'nickname': string;
'bio_description'?: string;
'avatar_thumb': WebcastFeedResponseImage;
'avatar_medium': WebcastFeedResponseImage;
'avatar_large': WebcastFeedResponseImage;
'status': number;
'modify_time': number;
'follow_info': WebcastFeedResponseUserFollowInfo;
/**
* Construct a type with a set of properties K of type T
*/
'pay_grade': {
[key: string]: any;
};
/**
* Construct a type with a set of properties K of type T
*/
'user_attr': {
[key: string]: any;
};
'own_room'?: WebcastFeedResponseUserOwnRoom;
'display_id': string;
'sec_uid': string;
'id_str': string;
}
interface WebcastFeedResponseUserFollowInfo {
'follower_count': number;
'following_count': number;
}
interface WebcastFeedResponseUserOwnRoom {
'room_ids_str': Array<string>;
'room_ids': Array<number>;
}
interface WebcastFeedRouteOutput {
'data': WebcastFeedResponse;
}
interface WebcastFeedRouteResponse {
'code': number;
'message'?: string;
'response'?: WebcastFeedRouteOutput;
'region': PooledProxyRegion;
}
declare const WebcastFetchPlatform: {
readonly Mobile: "mobile";
readonly Web: "web";
};
type WebcastFetchPlatform = typeof WebcastFetchPlatform[keyof typeof WebcastFetchPlatform];
/**
* Gallery entrance payload. Only the fields we model are typed; the rest of the (large) TikTok response rides through as `any`.
*/
interface WebcastGiftGalleryData {
[key: string]: any;
'normal_gifts': Array<NormalGiftItem>;
/**
* Construct a type with a set of properties K of type T
*/
'current_user_progress'?: {
[key: string]: GiftGalleryProgressItem;
};
'current_timestamp': number;
'current_period_starts_at': number;
'current_period_ends_at': number;
'class_type': RankingLeagueLevel;
'anchor_ranking_league': WebcastGiftGalleryDataAnchorRankingLeagueEnum;
}
declare const WebcastGiftGalleryDataAnchorRankingLeagueEnum: {
readonly ToString: "toString";
readonly ToFixed: "toFixed";
readonly ToExponential: "toExponential";
readonly ToPrecision: "toPrecision";
readonly ValueOf: "valueOf";
readonly ToLocaleString: "toLocaleString";
};
type WebcastGiftGalleryDataAnchorRankingLeagueEnum = typeof WebcastGiftGalleryDataAnchorRankingLeagueEnum[keyof typeof WebcastGiftGalleryDataAnchorRankingLeagueEnum];
interface WebcastGiftGalleryResponse {
'code': number;
'message'?: string;
'data'?: WebcastGiftGalleryData;
}
interface WebcastGiftResponse {
'code': number;
'message'?: string;
'gift'?: TikTokGiftsServerGift;
}
interface WebcastGiftSearchResponse {
'code': number;
'message'?: string;
'gifts'?: Array<TikTokGiftsServerGift>;
}
interface WebcastGiftcatalogResponse {
'code': number;
'message'?: string;
'gifts'?: Array<TikTokGiftsServerGift>;
'total'?: number;
'pageSize'?: number;
'pageNumber'?: number;
'totalPages'?: number;
}
interface WebcastGiftsResponse {
'code': number;
'message'?: string;
'url': string;
}
interface WebcastHashtagListResponse {
'data': WebcastHashtagListResponseData;
'extra': WebcastHashtagListResponseExtra;
'status_code': number;
}
interface WebcastHashtagListResponseData {
'game_hashtag': WebcastHashtagListResponseHashtag;
'game_tag_list': Array<WebcastHashtagListResponseGameTag>;
'hashtag': Array<WebcastHashtagListResponseHashtag>;
'live_studio_hashtag': Array<WebcastHashtagListResponseHashtag>;
'live_voice_hashtag': Array<WebcastHashtagListResponseHashtag>;
'third_party_hashtag': Array<WebcastHashtagListResponseHashtag>;
}
interface WebcastHashtagListResponseExtra {
'now': number;
}
interface WebcastHashtagListResponseGameCategory {
'game_type': number;
'title': string;
}
interface WebcastHashtagListResponseGameTag {
'bundle_id': string;
'full_name': string;
'game_category': Array<WebcastHashtagListResponseGameCategory>;
'gar': Array<any>;
'hashtag_id': Array<any>;
'hashtag_list': Array<WebcastHashtagListResponseHashtagSimple>;
'id': number;
'is_new_game': boolean;
'landscape': number;
'package_name': string;
'short_name': string;
'show_name': string;
}
interface WebcastHashtagListResponseHashtag {
'id': number;
'image': WebcastHashtagListResponseImage;
'namespace': number;
'title': string;
}
interface WebcastHashtagListResponseHashtagSimple {
'id': number;
'namespace': number;
'title': string;
}
interface WebcastHashtagListResponseImage {
'avg_color': string;
'height': number;
'image_type': number;
'is_animated': boolean;
'open_web_url': string;
'uri': string;
'url_list': Array<string>;
'width': number;
}
interface WebcastHashtagListRouteOutput {
'data': WebcastHashtagListResponse;
}
interface WebcastIsLiveOutput {
/**
* Construct a type with a set of properties K of type T
*/
'data'?: {
[key: string]: RecordStringIsLiveBooleanRoomIdStringOrNullValue;
};
}
declare const WebcastLanguage: {
readonly Aa: "aa";
readonly Ab: "ab";
readonly Af: "af";
readonly Ak: "ak";
readonly Am: "am";
readonly An: "an";
readonly Ar: "ar";
readonly As: "as";
readonly Av: "av";
readonly Ay: "ay";
readonly Az: "az";
readonly Ba: "ba";
readonly Be: "be";
readonly Bg: "bg";
readonly Bh: "bh";
readonly Bi: "bi";
readonly Bm: "bm";
readonly Bn: "bn";
readonly Bo: "bo";
readonly Br: "br";
readonly Bs: "bs";
readonly Ca: "ca";
readonly Ce: "ce";
readonly Ch: "ch";
readonly Co: "co";
readonly Cr: "cr";
readonly Cs: "cs";
readonly Cu: "cu";
readonly Cv: "cv";
readonly Cy: "cy";
readonly Da: "da";
readonly De: "de";
readonly Dv: "dv";
readonly Dz: "dz";
readonly Ee: "ee";
readonly El: "el";
readonly En: "en";
readonly Eo: "eo";
readonly Es: "es";
readonly Et: "et";
readonly Eu: "eu";
readonly Fa: "fa";
readonly Ff: "ff";
readonly Fi: "fi";
readonly Fj: "fj";
readonly Fo: "fo";
readonly Fr: "fr";
readonly Fy: "fy";
readonly Ga: "ga";
readonly Gd: "gd";
readonly Gl: "gl";
readonly Gn: "gn";
readonly Gu: "gu";
readonly Gv: "gv";
readonly Ha: "ha";
readonly He: "he";
readonly Hi: "hi";
readonly Ho: "ho";
readonly Hr: "hr";
readonly Ht: "ht";
readonly Hu: "hu";
readonly Hy: "hy";
readonly Hz: "hz";
readonly Ia: "ia";
readonly Id: "id";
readonly Ie: "ie";
readonly Ig: "ig";
readonly Ii: "ii";
readonly Ik: "ik";
readonly Io: "io";
readonly Is: "is";
readonly It: "it";
readonly Iu: "iu";
readonly Ja: "ja";
readonly Jv: "jv";
readonly Ka: "ka";
readonly Kg: "kg";
readonly Ki: "ki";
readonly Kj: "kj";
readonly Kk: "kk";
readonly Kl: "kl";
readonly Km: "km";
readonly Kn: "kn";
readonly Ko: "ko";
readonly Kr: "kr";
readonly Ks: "ks";
readonly Ku: "ku";
readonly Kv: "kv";
readonly Kw: "kw";
readonly Ky: "ky";
readonly La: "la";
readonly Lb: "lb";
readonly Lg: "lg";
readonly Li: "li";
readonly Ln: "ln";
readonly Lo: "lo";
readonly Lt: "lt";
readonly Lu: "lu";
readonly Lv: "lv";
readonly Mg: "mg";
readonly Mh: "mh";
readonly Mi: "mi";
readonly Mk: "mk";
readonly Ml: "ml";
readonly Mn: "mn";
readonly Mr: "mr";
readonly Ms: "ms";
readonly Mt: "mt";
readonly My: "my";
readonly Na: "na";
readonly Nb: "nb";
readonly Nd: "nd";
readonly Ne: "ne";
readonly Ng: "ng";
readonly Nl: "nl";
readonly Nn: "nn";
readonly No: "no";
readonly Nr: "nr";
readonly Nv: "nv";
readonly Ny: "ny";
readonly Oc: "oc";
readonly Oj: "oj";
readonly Om: "om";
readonly Or: "or";
readonly Os: "os";
readonly Pa: "pa";
readonly Pi: "pi";
readonly Pl: "pl";
readonly Ps: "ps";
readonly Pt: "pt";
readonly Qu: "qu";
readonly Rm: "rm";
readonly Rn: "rn";
readonly Ro: "ro";
readonly Ru: "ru";
readonly Rw: "rw";
readonly Sa: "sa";
readonly Sc: "sc";
readonly Sd: "sd";
readonly Se: "se";
readonly Sg: "sg";
readonly Si: "si";
readonly Sk: "sk";
readonly Sl: "sl";
readonly Sm: "sm";
readonly Sn: "sn";
readonly So: "so";
readonly Sq: "sq";
readonly Sr: "sr";
readonly Ss: "ss";
readonly St: "st";
readonly Su: "su";
readonly Sv: "sv";
readonly Sw: "sw";
readonly Ta: "ta";
readonly Te: "te";
readonly Tg: "tg";
readonly Th: "th";
readonly Ti: "ti";
readonly Tk: "tk";
readonly Tl: "tl";
readonly Tn: "tn";
readonly To: "to";
readonly Tr: "tr";
readonly Ts: "ts";
readonly Tt: "tt";
readonly Tw: "tw";
readonly Ty: "ty";
readonly Ug: "ug";
readonly Uk: "uk";
readonly Ur: "ur";
readonly Uz: "uz";
readonly Ve: "ve";
readonly Vi: "vi";
readonly Vo: "vo";
readonly Wa: "wa";
readonly Wo: "wo";
readonly Xh: "xh";
readonly Yi: "yi";
readonly Yo: "yo";
readonly Za: "za";
readonly Zh: "zh";
readonly Zu: "zu";
};
type WebcastLanguage = typeof WebcastLanguage[keyof typeof WebcastLanguage];
interface WebcastLiveAnalyticsUserInteractionsResponse {
'data': WebcastLiveAnalyticsUserInteractionsResponseData;
'extra': WebcastLiveAnalyticsUserInteractionsResponseExtra;
'status_code': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponseComment {
'content': string;
'emotes': Array<any>;
'event_time': number;
'msg_id': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponseData {
'anchor': WebcastLiveAnalyticsUserInteractionsResponseUser;
'comment_count': number;
'comment_list': Array<WebcastLiveAnalyticsUserInteractionsResponseComment>;
'follow_time': number;
'like_count': number;
'share_count': number;
'summary': string;
'summary_type': number;
'user': WebcastLiveAnalyticsUserInteractionsResponseUser;
'watch_duration': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponseEnigmaInfo {
'is_enigma_mask_on': boolean;
}
interface WebcastLiveAnalyticsUserInteractionsResponseExtra {
'now': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponseImage {
'avg_color': string;
'height': number;
'image_type': number;
'is_animated': boolean;
'open_web_url': string;
'uri': string;
'url_list': Array<string>;
'width': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponsePayGrade {
'grade_banner': string;
'grade_describe': string;
'grade_icon_list': Array<any>;
'level': number;
'name': string;
'next_name': string;
'next_privileges': string;
'score': number;
'screen_chat_type': number;
'upgrade_need_consume': number;
}
interface WebcastLiveAnalyticsUserInteractionsResponseUser {
'allow_find_by_contacts': boolean;
'allow_others_download_video': boolean;
'allow_others_download_when_sharing_video': boolean;
'allow_share_show_profile': boolean;
'allow_show_in_gossip': boolean;
'allow_show_my_action': boolean;
'allow_strange_comment': boolean;
'allow_unfollower_comment': boolean;
'allow_use_linkmic': boolean;
'avatar_thumb': WebcastLiveAnalyticsUserInteractionsResponseImage;
'badge_image_list': Array<any>;
'badge_list': Array<any>;
'bg_img_url': string;
'bio_description': string;
'block_status': number;
'border_list': Array<any>;
'comment_restrict': number;
'commerce_webcast_config_ids': Array<any>;
'constellation': string;
'create_time': number;
'disable_ichat': number;
'display_id': string;
'enable_ichat_img': number;
'enigma_info': WebcastLiveAnalyticsUserInteractionsResponseEnigmaInfo;
'exp': number;
'fan_ticket_count': number;
'fold_stranger_chat': boolean;
'follow_status': number;
'ichat_restrict_type': number;
'id': number;
'id_str': string;
'is_anchor_marked': boolean;
'is_block': boolean;
'is_follower': boolean;
'is_following': boolean;
'is_subscribe': boolean;
'link_mic_stats': number;
'media_badge_image_list': Array<any>;
'mint_type_label': Array<any>;
'modify_time': number;
'need_profile_guide': boolean;
'new_real_time_icons': Array<any>;
'nickname': string;
'pay_grade': WebcastLiveAnalyticsUserInteractionsResponsePayGrade;
'pay_score': number;
'pay_scores': number;
'push_comment_status': boolean;
'push_digg': boolean;
'push_follow': boolean;
'push_friend_action': boolean;
'push_ichat': boolean;
'push_status': boolean;
'push_video_post': boolean;
'push_video_recommend': boolean;
'real_time_icons': Array<any>;
'scm_label': string;
'sec_uid': string;
'secret': number;
'share_qrcode_uri': string;
'special_id': string;
'status': number;
'ticket_count': number;
'top_fans': Array<any>;
'top_vip_no': number;
'upcoming_event_list': Array<any>;
'user_attr': WebcastLiveAnalyticsUserInteractionsResponseUserAttr;
'user_role': number;
'verified': boolean;
'verified_content': string;
'verified_reason': string;
'with_car_management_permission': boolean;
'with_commerce_permission': boolean;
'with_fusion_shop_entry': boolean;
}
interface WebcastLiveAnalyticsUserInteractionsResponseUserAttr {
/**
* Construct a type with a set of properties K of type T
*/
'admin_permissions': {