import { type youtube_v3 } from '../lib/googleapis-lite.js'; import type { OAuth2Client } from 'google-auth-library'; import { validateVideo } from './render.js'; export declare const YOUTUBE_SCOPE = "https://www.googleapis.com/auth/youtube.force-ssl"; export type YouTubePrivacyStatus = 'private' | 'unlisted' | 'public'; export interface UploadYouTubeVideoInput { filePath: string; title: string; description?: string; tags?: string[]; categoryId?: string; privacyStatus?: YouTubePrivacyStatus; madeForKids?: boolean; containsSyntheticMedia?: boolean; notifySubscribers?: boolean; shortsOnly?: boolean; confirmVisible?: boolean; } export interface UpdateYouTubePrivacyInput { videoId: string; privacyStatus: YouTubePrivacyStatus; confirmVisible?: boolean; } declare function assertVisibilityConfirmed(privacyStatus: YouTubePrivacyStatus, confirmVisible?: boolean): void; declare function assertUploadFile(filePath: string): { size: number; mimeType: string; }; declare function assertTags(tags?: string[]): void; declare function videoFacts(validation: Awaited>): { width?: number; height?: number; durationSec?: number; }; declare function assertShortsCompatible(facts: ReturnType): void; export declare function getYouTubeVideoStatus(auth: OAuth2Client, videoId: string): Promise<{ videoId: string | null; title: string | null; privacyStatus: string | null; uploadStatus: string | null; processingStatus: string | null; processingProgress: youtube_v3.Schema$VideoProcessingDetailsProcessingProgress | null; madeForKids: boolean | null; containsSyntheticMedia: boolean | null; watchUrl: string | null; studioUrl: string | null; }>; export declare function uploadYouTubeVideo(auth: OAuth2Client, input: UploadYouTubeVideoInput): Promise<{ requestedPrivacyStatus: YouTubePrivacyStatus; file: { width?: number; height?: number; durationSec?: number; path: string; size: number; }; validationWarnings: string[]; videoId: string | null; title: string | null; privacyStatus: string | null; uploadStatus: string | null; processingStatus: string | null; processingProgress: youtube_v3.Schema$VideoProcessingDetailsProcessingProgress | null; madeForKids: boolean | null; containsSyntheticMedia: boolean | null; watchUrl: string | null; studioUrl: string | null; }>; export declare function updateYouTubeVideoPrivacy(auth: OAuth2Client, input: UpdateYouTubePrivacyInput): Promise<{ videoId: string | null; title: string | null; privacyStatus: string | null; uploadStatus: string | null; processingStatus: string | null; processingProgress: youtube_v3.Schema$VideoProcessingDetailsProcessingProgress | null; madeForKids: boolean | null; containsSyntheticMedia: boolean | null; watchUrl: string | null; studioUrl: string | null; }>; export declare const __testing: { assertVisibilityConfirmed: typeof assertVisibilityConfirmed; assertUploadFile: typeof assertUploadFile; assertTags: typeof assertTags; assertShortsCompatible: typeof assertShortsCompatible; videoFacts: typeof videoFacts; }; export {};