import type { UserIdResolvable } from 'twitch-common'; import { BaseApi } from '../../BaseApi'; import { CreatedVideo } from './CreatedVideo'; import type { VideoViewability } from './Video'; import { Video } from './Video'; /** * Possible periods to search videos in. */ export declare type VideoSearchPeriod = 'week' | 'month' | 'all'; /** * Possible video types to search for. */ export declare type VideoType = 'archive' | 'highlight' | 'upload'; /** * Possible ways to sort videos. */ export declare type VideoSort = 'time' | 'views'; /** @private */ export interface VideoEditData { /** * The new description of the video. */ description?: string; /** * The new game of the video. */ game?: string; /** * The new language of the video. */ language?: string; /** * The new tag list of the video. */ tag_list?: string; } /** * Video data for a new video using {@VideoApi#createVideo}. */ interface VideoCreateData extends VideoEditData { /** * The new title of the video. */ title: string; /** * Whether the video will be public or private initially. */ viewable: VideoViewability; /** * The time when the video will become public. * * This only takes effect if `viewable` is `private`. */ viewable_at: string; } /** * Video data to update using {@VideoApi#updateVideo}. * * @inheritDoc */ export interface VideoUpdateData extends VideoEditData { /** * The new title of the video. */ title?: string; } /** * The API methods that deal with users. * * Can be accessed using `client.kraken.videos` on an {@ApiClient} instance. * * ## Example * ```ts * const api = new ApiClient(new StaticAuthProvider(clientId, accessToken)); * const user = await api.kraken.videos.getVideo('85448040'); * ``` */ export declare class VideoApi extends BaseApi { /** * Retrieves a video by ID. * * @param id The ID of the video. */ getVideo(id: string): Promise