import type { OAuth2Client } from 'google-auth-library'; import type { youtube_v3 } from '../lib/googleapis-lite.js'; export interface YouTubeWriteTarget { expectedChannelId: string; videoId: string; } export interface UpdateYouTubeMetadataInput extends YouTubeWriteTarget { title?: string; description?: string; tags?: string[]; confirm?: boolean; } export declare function updateYouTubeVideoMetadata(auth: OAuth2Client, input: UpdateYouTubeMetadataInput): Promise<{ videoId: string; channel: { id: string; title: string; }; before: { title: string; description: string; tags: string[]; categoryId: string; defaultLanguage: string | null; defaultAudioLanguage: string | null; }; after: youtube_v3.Schema$VideoSnippet; status: "preview"; } | { applied: { title: string | null; description: string | null; tags: string[] | null; }; videoId: string; channel: { id: string; title: string; }; before: { title: string; description: string; tags: string[]; categoryId: string; defaultLanguage: string | null; defaultAudioLanguage: string | null; }; after: youtube_v3.Schema$VideoSnippet; status: "updated"; }>; export interface SetYouTubeThumbnailInput extends YouTubeWriteTarget { filePath: string; confirm?: boolean; } export declare function setYouTubeThumbnail(auth: OAuth2Client, input: SetYouTubeThumbnailInput): Promise<{ videoId: string; channel: { id: string; title: string; }; title: string | null; file: { size: number; mimeType: string; path: string; }; status: "preview"; } | { thumbnails: youtube_v3.Schema$ThumbnailDetails[]; videoId: string; channel: { id: string; title: string; }; title: string | null; file: { size: number; mimeType: string; path: string; }; status: "updated"; }>; export interface ScheduleYouTubeVideoInput extends YouTubeWriteTarget { publishAt: string; confirmVisible?: boolean; } export declare function scheduleYouTubeVideo(auth: OAuth2Client, input: ScheduleYouTubeVideoInput): Promise<{ videoId: string; channel: { id: string; title: string; }; title: string | null; before: { privacyStatus: string; publishAt: string | null; }; after: { privacyStatus: string; publishAt: string; }; status: "preview"; } | { applied: { privacyStatus: string; publishAt: string; }; videoId: string; channel: { id: string; title: string; }; title: string | null; before: { privacyStatus: string; publishAt: string | null; }; after: { privacyStatus: string; publishAt: string; }; status: "scheduled"; }>; export declare function getYouTubeChannel(auth: OAuth2Client, expectedChannelId?: string): Promise<{ channelId: string; title: string; description: string | null; customUrl: string | null; publishedAt: string | null; uploadsPlaylistId: string | null; statistics: youtube_v3.Schema$ChannelStatistics | null; }>; export declare function listYouTubeVideos(auth: OAuth2Client, input: { expectedChannelId?: string; maxResults?: number; pageToken?: string; }): Promise<{ channel: { id: string; title: string; }; videos: { videoId: string | null | undefined; title: string | null; publishedAt: string | null; privacyStatus: string | null; duration: string | null; statistics: youtube_v3.Schema$VideoStatistics | null; }[]; nextPageToken: string | null; }>; export type AnalyticsDimension = 'total' | 'day' | 'video'; export interface YouTubeAnalyticsInput { expectedChannelId?: string; startDate: string; endDate: string; dimension?: AnalyticsDimension; maxResults?: number; startIndex?: number; } export declare function getYouTubeAnalyticsReport(auth: OAuth2Client, input: YouTubeAnalyticsInput): Promise<{ channel: { id: string; title: string; }; requestedPeriod: { startDate: string; endDate: string; }; dimension: AnalyticsDimension; columnHeaders: import("googleapis/build/src/apis/youtubeAnalytics/v2.js").youtubeAnalytics_v2.Schema$ResultTableColumnHeader[]; rows: any[][]; startIndex: number; maxResults: number; note: string; }>;