import type { OAuth2Client } from 'google-auth-library'; export interface YouTubeContentInsightsInput { expectedChannelId: string; startDate: string; endDate: string; maxVideos?: number; minViews?: number; } export declare function comparisonPeriods(startDate: string, endDate: string): { current: { startDate: string; endDate: string; inclusiveDays: number; }; previous: { startDate: string; endDate: string; inclusiveDays: number; }; }; export declare function getYouTubeContentInsights(auth: OAuth2Client, input: YouTubeContentInsightsInput): Promise<{ status: string; channel: { id: string; title: string; }; periods: { current: { startDate: string; endDate: string; inclusiveDays: number; }; previous: { startDate: string; endDate: string; inclusiveDays: number; }; }; sources: { channelTotals: string; sampledVideos: string; videoMetadata: string; }; channelMetrics: Record<"views" | "estimatedMinutesWatched" | "averageViewDuration" | "subscribersGained", { current: number | null; previous: number | null; absolute: number | null; percent: number | null; }>; sample: { requestedMaxVideos: number; returnedVideos: number; minViewsForEligibility: number; sampledVideos: { metadata: { title: string | null; publishedAt: string | null; duration: string | null; } | null; descriptivePer1000Views: { estimatedMinutesWatched: number | null; subscribersGained: number | null; }; views: number; estimatedMinutesWatched: number; averageViewDuration: number; subscribersGained: number; videoId: string; }[]; eligibleVideos: { rankByPeriodViews: number; videoId: string; views: number; }[]; }; limitations: string[]; planningHandoff: { instruction: string; productionRoute: string; generatedStoryboard: boolean; }; }>;