import { z } from 'zod';
export var YouTubeSort;
(function (YouTubeSort) {
    YouTubeSort["NEWEST"] = "newest";
    YouTubeSort["OLDEST"] = "oldest";
    YouTubeSort["VIEW_COUNT"] = "viewCount";
})(YouTubeSort || (YouTubeSort = {}));
export const ZYouTubeCollectionItem = z.object({
    id: z.string().uuid().optional(),
    moduleId: z.string().optional().nullable(),
    order: z.number().optional(),
    sort: z.string().optional().nullable(),
    totalSelected: z.number(),
    url: z.string().optional().nullable(),
    versionId: z.string().optional().nullable(),
    visible: z.boolean().default(true)
});
export const ZYouTubeCollectionParams = z.object({
    limit: z.string().regex(/^\d+$/).optional(),
    sort: z.nativeEnum(YouTubeSort).optional(),
    url: z.string()
});
export const ZYouTubeVideoMetadata = z.object({
    thumbnail: z.string().optional(),
    title: z.string()
});
export const ZYouTubeVideoLinkItem = z.object({
    metadata: ZYouTubeVideoMetadata,
    url: z.string()
});
export const ZYouTubePage = z.object({
    context: z.record(z.any()).optional().nullable(),
    continuation: z.record(z.any()).optional(),
    next: z.string().optional()
});
export const ZYouTubeCollectionData = z.object({
    items: z.array(ZYouTubeVideoLinkItem),
    next: ZYouTubePage.optional(),
    title: z.string()
});
export var YouTubeThumbNailQualityPriority;
(function (YouTubeThumbNailQualityPriority) {
    YouTubeThumbNailQualityPriority["maxres"] = "maxres";
    YouTubeThumbNailQualityPriority["standard"] = "standard";
    YouTubeThumbNailQualityPriority["high"] = "high";
    YouTubeThumbNailQualityPriority["medium"] = "medium";
    YouTubeThumbNailQualityPriority["default"] = "default";
})(YouTubeThumbNailQualityPriority || (YouTubeThumbNailQualityPriority = {}));
export const ZYouTubeGetMetadataBody = z.object({
    sort: z.nativeEnum(YouTubeSort).optional(),
    totalSelected: z.number(),
    url: z.string()
});
