import type { UserIdResolvable, UserIdResolvableType } from 'twitch-common'; import type { ApiClient } from '../../../ApiClient'; import type { CheermoteList } from '../Bits/CheermoteList'; import type { Stream } from '../Stream/Stream'; import type { Channel } from './Channel'; import type { ChannelFollow } from './ChannelFollow'; import type { ChannelSubscription } from './ChannelSubscription'; /** @private */ export interface ChannelPlaceholderData { _id: string; } /** * A placeholder for a channel. * * This is used for example when you only have retrieved user data, but not channel data. * This can do anything you can do with only a channel ID, as it's equivalent to the user ID. */ export declare class ChannelPlaceholder implements UserIdResolvableType { /** @private */ protected readonly _data: ChannelPlaceholderData; /** @private */ protected readonly _client: ApiClient; /** @private */ constructor(id: string, client: ApiClient); /** @private */ get cacheKey(): string; /** * The ID of the channel. */ get id(): string; /** * Retrieves the list of cheermotes you can use in the channel. */ getCheermotes(): Promise; /** * Retrieves the channel data. */ getChannel(): Promise; /** * Retrieves the channel's stream data. */ getStream(): Promise; /** * Retrieves the channel's followers. */ getFollowers(): Promise; /** * Retrieves the channel's subscribers. */ getSubscriptions(): Promise; /** * Retrieves the subscription data for the given user to the channel. * * Throws if the channel doesn't have a subscription program or the user is not subscribed to it. * * This method requires access to the channel. If you only have access to the user, * use {@User#getSubscriptionTo} instead. * * @param user The user you want to get the subscription data for. */ getSubscriptionBy(user: UserIdResolvable): Promise; /** * Checks whether the given user is subscribed to the channel. * * @param user The user you want to check the subscription for. */ hasSubscriber(user: UserIdResolvable): Promise; }