// This file is auto-generated by @hey-api/openapi-ts

export type ShowInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'show';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    actors: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    studios: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    rating: string | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    year: number | null;
    seasons?: Array<SeasonInput>;
};

export type SeasonInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'season';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    studios: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    index: number;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    show?: ShowInput;
    episodes?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'episode';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType?: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        episodeNumber: number;
        summary: string | null;
    }>;
};

export type EpisodeInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'episode';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    originalTitle: string | null;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    mediaItem?: {
        streams: Array<{
            index: number;
            codec: string;
            profile?: string | null;
            streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
            title?: string | null;
            hasAttachedPicture?: boolean | null;
            fileName?: string | null;
            mimeType?: string | null;
            frameRate?: (string | number) | null;
            pixelFormat?: string | null;
            bitDepth?: number | null;
            colorRange?: string | null;
            colorSpace?: string | null;
            colorTransfer?: string | null;
            colorPrimaries?: string | null;
            channels?: number | null;
            sdh?: boolean | null;
            languageCodeISO6392?: string | null;
            selected?: boolean | null;
            default?: boolean | null;
            forced?: boolean | null;
        }>;
        duration: number;
        sampleAspectRatio?: string | null;
        displayAspectRatio?: string | null;
        frameRate?: (number | string) | null;
        resolution?: {
            widthPx: number;
            heightPx: number;
        } | null;
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        chapters?: Array<{
            index: number;
            startTime: number;
            endTime: number;
            title?: string | null;
            chapterType?: 'chapter' | 'intro' | 'outro';
        }> | null;
        scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
    };
    actors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    writers?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    directors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    duration: number;
    externalSubtitles?: Array<{
        subtitleType: 'embedded' | 'sidecar';
        title?: string | null;
        streamIndex?: number | null;
        codec: string;
        default?: boolean | null;
        forced?: boolean | null;
        sdh?: boolean | null;
        language: string;
        path?: string | null;
    }> | null;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    state: 'ok' | 'missing';
    episodeNumber: number;
    summary: string | null;
    season?: SeasonInput;
    show?: ShowInput;
};

export type MusicArtistInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'artist';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    albums?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'album';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        summary: string | null;
        plot: string | null;
        tagline: string | null;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        childCount?: number;
        grandchildCount?: number;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        index?: number;
        year: number | null;
        releaseDate: number | null;
        releaseDateString: string | null;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
    }>;
};

export type MusicAlbumInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'album';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    index?: number;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    artist?: MusicArtistInput;
    tracks?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'track';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType?: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        trackNumber: number;
    }>;
};

export type MusicTrackInput = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'track';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    originalTitle: string | null;
    year: number | null;
    /**
     * Epoch timestamp
     */
    releaseDate: number | null;
    releaseDateString: string | null;
    mediaItem?: {
        streams: Array<{
            index: number;
            codec: string;
            profile?: string | null;
            streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
            title?: string | null;
            hasAttachedPicture?: boolean | null;
            fileName?: string | null;
            mimeType?: string | null;
            frameRate?: (string | number) | null;
            pixelFormat?: string | null;
            bitDepth?: number | null;
            colorRange?: string | null;
            colorSpace?: string | null;
            colorTransfer?: string | null;
            colorPrimaries?: string | null;
            channels?: number | null;
            sdh?: boolean | null;
            languageCodeISO6392?: string | null;
            selected?: boolean | null;
            default?: boolean | null;
            forced?: boolean | null;
        }>;
        duration: number;
        sampleAspectRatio?: string | null;
        displayAspectRatio?: string | null;
        frameRate?: (number | string) | null;
        resolution?: {
            widthPx: number;
            heightPx: number;
        } | null;
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        chapters?: Array<{
            index: number;
            startTime: number;
            endTime: number;
            title?: string | null;
            chapterType?: 'chapter' | 'intro' | 'outro';
        }> | null;
        scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
    };
    actors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    writers?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    directors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    duration: number;
    externalSubtitles?: Array<{
        subtitleType: 'embedded' | 'sidecar';
        title?: string | null;
        streamIndex?: number | null;
        codec: string;
        default?: boolean | null;
        forced?: boolean | null;
        sdh?: boolean | null;
        language: string;
        path?: string | null;
    }> | null;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    state: 'ok' | 'missing';
    trackNumber: number;
    album?: MusicAlbumInput;
    artist?: MusicArtistInput;
};

export type PlexFilterInput = {
    type: 'op';
    op: 'or' | 'and';
    children: Array<PlexFilterInput>;
} | {
    type: 'value';
    field: string;
    fieldType?: string;
    op: string;
    value: string;
};

export type SearchFilterInput = {
    type: 'op';
    op: 'or' | 'and';
    children: Array<SearchFilterInput>;
} | {
    type: 'value';
    fieldSpec: {
        key: string;
        name: string;
        type: 'string';
        op: '=' | '!=' | 'contains' | 'starts with' | 'in' | 'not in';
        value: Array<string>;
    } | {
        key: string;
        name: string;
        type: 'facted_string';
        op: '=' | '!=' | 'contains' | 'starts with' | 'in' | 'not in';
        value: Array<string>;
    } | {
        key: string;
        name: string;
        type: 'numeric';
        op: '=' | '!=' | '<' | '>' | '<=' | '>=' | 'to';
        value: number | [
            number,
            number
        ];
    } | {
        key: string;
        name: string;
        type: 'date';
        op: '=' | '!=' | '<' | '>' | '<=' | '>=' | 'to';
        value: number | [
            number,
            number
        ];
    };
};

export type Show = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'show';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    actors: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    studios: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    rating: string | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    year: number | null;
    seasons?: Array<Season>;
};

export type Season = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'season';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    studios: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    index: number;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    show?: Show;
    episodes?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'episode';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        episodeNumber: number;
        summary: string | null;
    }>;
};

export type Episode = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'episode';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    originalTitle: string | null;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    mediaItem?: {
        streams: Array<{
            index: number;
            codec: string;
            profile?: string | null;
            streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
            title?: string | null;
            hasAttachedPicture?: boolean | null;
            fileName?: string | null;
            mimeType?: string | null;
            frameRate?: (string | number) | null;
            pixelFormat?: string | null;
            bitDepth?: number | null;
            colorRange?: string | null;
            colorSpace?: string | null;
            colorTransfer?: string | null;
            colorPrimaries?: string | null;
            channels?: number | null;
            sdh?: boolean | null;
            languageCodeISO6392?: string | null;
            selected?: boolean | null;
            default?: boolean | null;
            forced?: boolean | null;
        }>;
        duration: number;
        sampleAspectRatio?: string | null;
        displayAspectRatio?: string | null;
        frameRate?: (number | string) | null;
        resolution?: {
            widthPx: number;
            heightPx: number;
        } | null;
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        chapters?: Array<{
            index: number;
            startTime: number;
            endTime: number;
            title?: string | null;
            chapterType: 'chapter' | 'intro' | 'outro';
        }> | null;
        scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
    };
    actors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    writers?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    directors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    duration: number;
    externalSubtitles?: Array<{
        subtitleType: 'embedded' | 'sidecar';
        title?: string | null;
        streamIndex?: number | null;
        codec: string;
        default?: boolean | null;
        forced?: boolean | null;
        sdh?: boolean | null;
        language: string;
        path?: string | null;
    }> | null;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    state: 'ok' | 'missing';
    episodeNumber: number;
    summary: string | null;
    season?: Season;
    show?: Show;
};

export type MusicArtist = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'artist';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    albums?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'album';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        summary: string | null;
        plot: string | null;
        tagline: string | null;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        childCount?: number;
        grandchildCount?: number;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        index?: number;
        year: number | null;
        releaseDate: number | null;
        releaseDateString: string | null;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
    }>;
};

export type MusicAlbum = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'album';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    summary: string | null;
    plot: string | null;
    tagline: string | null;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    childCount?: number;
    grandchildCount?: number;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    index?: number;
    year: number | null;
    releaseDate: number | null;
    releaseDateString: string | null;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    artist?: MusicArtist;
    tracks?: Array<{
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'track';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        trackNumber: number;
    }>;
};

export type MusicTrack = {
    uuid: string;
    canonicalId: string;
    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
    /**
     * Unique identifier for this item in the external media source
     */
    externalId: string;
    type: 'track';
    identifiers: Array<{
        id: string;
        sourceId?: string;
        type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
    }>;
    title: string;
    sortTitle: string;
    tags: Array<string>;
    mediaSourceId: string;
    libraryId: string;
    originalTitle: string | null;
    year: number | null;
    /**
     * Epoch timestamp
     */
    releaseDate: number | null;
    releaseDateString: string | null;
    mediaItem?: {
        streams: Array<{
            index: number;
            codec: string;
            profile?: string | null;
            streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
            title?: string | null;
            hasAttachedPicture?: boolean | null;
            fileName?: string | null;
            mimeType?: string | null;
            frameRate?: (string | number) | null;
            pixelFormat?: string | null;
            bitDepth?: number | null;
            colorRange?: string | null;
            colorSpace?: string | null;
            colorTransfer?: string | null;
            colorPrimaries?: string | null;
            channels?: number | null;
            sdh?: boolean | null;
            languageCodeISO6392?: string | null;
            selected?: boolean | null;
            default?: boolean | null;
            forced?: boolean | null;
        }>;
        duration: number;
        sampleAspectRatio?: string | null;
        displayAspectRatio?: string | null;
        frameRate?: (number | string) | null;
        resolution?: {
            widthPx: number;
            heightPx: number;
        } | null;
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        chapters?: Array<{
            index: number;
            startTime: number;
            endTime: number;
            title?: string | null;
            chapterType: 'chapter' | 'intro' | 'outro';
        }> | null;
        scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
    };
    actors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
    }>;
    writers?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    directors?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
    }>;
    genres?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    studios?: Array<{
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
    }>;
    duration: number;
    externalSubtitles?: Array<{
        subtitleType: 'embedded' | 'sidecar';
        title?: string | null;
        streamIndex?: number | null;
        codec: string;
        default?: boolean | null;
        forced?: boolean | null;
        sdh?: boolean | null;
        language: string;
        path?: string | null;
    }> | null;
    artwork: Array<{
        id?: string;
        type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
        path?: string | null;
    }>;
    state: 'ok' | 'missing';
    trackNumber: number;
    album?: MusicAlbum;
    artist?: MusicArtist;
};

export type PlexFilter = {
    type: 'op';
    op: 'or' | 'and';
    children: Array<PlexFilter>;
} | {
    type: 'value';
    field: string;
    fieldType?: string;
    op: string;
    value: string;
};

export type SearchFilter = {
    type: 'op';
    op: 'or' | 'and';
    children: Array<SearchFilter>;
} | {
    type: 'value';
    fieldSpec: {
        key: string;
        name: string;
        type: 'string';
        op: '=' | '!=' | 'contains' | 'starts with' | 'in' | 'not in';
        value: Array<string>;
    } | {
        key: string;
        name: string;
        type: 'facted_string';
        op: '=' | '!=' | 'contains' | 'starts with' | 'in' | 'not in';
        value: Array<string>;
    } | {
        key: string;
        name: string;
        type: 'numeric';
        op: '=' | '!=' | '<' | '>' | '<=' | '>=' | 'to';
        value: number | [
            number,
            number
        ];
    } | {
        key: string;
        name: string;
        type: 'date';
        op: '=' | '!=' | '<' | '>' | '<=' | '>=' | 'to';
        value: number | [
            number,
            number
        ];
    };
};

export type GetApiTasksData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/tasks';
};

export type GetApiTasksResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        description?: string;
        scheduledTasks: Array<{
            running: boolean;
            lastExecution?: string;
            lastExecutionEpoch?: number;
            nextExecution?: string;
            nextExecutionEpoch?: number;
            args: {
                [key: string]: never;
            } | string;
        }>;
    }>;
};

export type GetApiTasksResponse = GetApiTasksResponses[keyof GetApiTasksResponses];

export type PostApiTasksByIdRunData = {
    body?: unknown;
    path: {
        id: string;
    };
    query?: {
        background?: boolean | string;
    };
    url: '/api/tasks/{id}/run';
};

export type PostApiTasksByIdRunErrors = {
    /**
     * Default Response
     */
    400: unknown;
    /**
     * Default Response
     */
    404: string;
};

export type PostApiTasksByIdRunError = PostApiTasksByIdRunErrors[keyof PostApiTasksByIdRunErrors];

export type PostApiTasksByIdRunResponses = {
    /**
     * Default Response
     */
    200: unknown;
    /**
     * Default Response
     */
    202: unknown;
};

export type GetChannelsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/channels';
};

export type GetChannelsErrors = {
    /**
     * Default Response
     */
    500: 'error';
};

export type GetChannelsError = GetChannelsErrors[keyof GetChannelsErrors];

export type GetChannelsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        disableFillerOverlay: boolean;
        duration: number;
        fallback?: Array<{
            artistName?: string;
            albumName?: string;
            channel?: string;
            customOrder?: number;
            customShowId?: string;
            customShowName?: string;
            date?: string;
            duration: number;
            episode?: number;
            episodeIcon?: string;
            file?: string;
            id: string;
            icon?: string;
            key?: string;
            plexFile?: string;
            rating?: string;
            externalKey?: string;
            season?: number;
            seasonIcon?: string;
            serverKey?: string;
            showIcon?: string;
            showTitle?: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            summary?: string;
            title?: string;
            type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
            year?: number;
        }>;
        fillerCollections?: Array<{
            id: string;
            weight: number;
            cooldownSeconds: number;
        }>;
        fillerRepeatCooldown?: number;
        groupTitle: string;
        guideFlexTitle?: string;
        guideMinimumDuration: number;
        icon: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        id: string;
        name: string;
        number: number;
        offline: {
            picture?: string;
            soundtrack?: string;
            mode: 'pic' | 'clip';
        };
        startTime: number;
        stealth: boolean;
        transcoding?: {
            targetResolution?: {
                widthPx: number;
                heightPx: number;
            };
            videoBitrate?: number;
            videoBufferSize?: number;
        };
        watermark?: {
            url?: string;
            enabled: boolean;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            width: number;
            verticalMargin: number;
            horizontalMargin: number;
            duration: number;
            fixedSize?: boolean;
            animated?: boolean;
            opacity: number;
            fadeConfig?: Array<{
                programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                periodMins: number;
                leadingEdge?: boolean;
            }>;
        };
        onDemand: {
            enabled: boolean;
        };
        programCount: number;
        streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        transcodeConfigId: string;
        sessions?: Array<{
            type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
            state: string;
            numConnections: number;
            connections: Array<{
                ip: string;
                userAgent?: string;
                lastHeartbeat?: number;
            }>;
        }>;
        subtitlesEnabled: boolean;
        subtitlePreferences?: Array<{
            langugeCode: string;
            priority: number;
            allowImageBased: boolean;
            allowExternal: boolean;
            filter: 'none' | 'forced' | 'default' | 'any';
        }>;
    }>;
};

export type GetChannelsResponse = GetChannelsResponses[keyof GetChannelsResponses];

export type CreateChannelV2Data = {
    body: {
        type: 'new';
        channel: {
            disableFillerOverlay: boolean;
            duration: number;
            fillerCollections?: Array<{
                id: string;
                weight: number;
                cooldownSeconds: number;
            }>;
            fillerRepeatCooldown?: number;
            groupTitle: string;
            guideFlexTitle?: string;
            guideMinimumDuration: number;
            icon: {
                path: string;
                width: number;
                duration: number;
                position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            };
            id: string;
            name: string;
            number: number;
            offline: {
                picture?: string;
                soundtrack?: string;
                mode: 'pic' | 'clip';
            };
            startTime: number;
            stealth: boolean;
            watermark?: {
                url?: string;
                enabled: boolean;
                position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
                width: number;
                verticalMargin: number;
                horizontalMargin: number;
                duration?: number;
                fixedSize?: boolean;
                animated?: boolean;
                opacity?: number;
                fadeConfig?: Array<{
                    programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                    periodMins: number;
                    leadingEdge?: boolean;
                }>;
            };
            onDemand?: {
                enabled: boolean;
            };
            streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
            transcodeConfigId: string;
            subtitlesEnabled: boolean;
            subtitlePreferences?: Array<{
                langugeCode: string;
                priority: number;
                allowImageBased: boolean;
                allowExternal: boolean;
                filter?: 'none' | 'forced' | 'default' | 'any';
            }>;
        };
    } | {
        type: 'copy';
        channelId: string;
    };
    path?: never;
    query?: never;
    url: '/api/channels';
};

export type CreateChannelV2Errors = {
    /**
     * Default Response
     */
    400: string;
    /**
     * Default Response
     */
    500: {
        [key: string]: never;
    };
};

export type CreateChannelV2Error = CreateChannelV2Errors[keyof CreateChannelV2Errors];

export type CreateChannelV2Responses = {
    /**
     * Default Response
     */
    201: {
        disableFillerOverlay: boolean;
        duration: number;
        fallback?: Array<{
            artistName?: string;
            albumName?: string;
            channel?: string;
            customOrder?: number;
            customShowId?: string;
            customShowName?: string;
            date?: string;
            duration: number;
            episode?: number;
            episodeIcon?: string;
            file?: string;
            id: string;
            icon?: string;
            key?: string;
            plexFile?: string;
            rating?: string;
            externalKey?: string;
            season?: number;
            seasonIcon?: string;
            serverKey?: string;
            showIcon?: string;
            showTitle?: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            summary?: string;
            title?: string;
            type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
            year?: number;
        }>;
        fillerCollections?: Array<{
            id: string;
            weight: number;
            cooldownSeconds: number;
        }>;
        fillerRepeatCooldown?: number;
        groupTitle: string;
        guideFlexTitle?: string;
        guideMinimumDuration: number;
        icon: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        id: string;
        name: string;
        number: number;
        offline: {
            picture?: string;
            soundtrack?: string;
            mode: 'pic' | 'clip';
        };
        startTime: number;
        stealth: boolean;
        transcoding?: {
            targetResolution?: {
                widthPx: number;
                heightPx: number;
            };
            videoBitrate?: number;
            videoBufferSize?: number;
        };
        watermark?: {
            url?: string;
            enabled: boolean;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            width: number;
            verticalMargin: number;
            horizontalMargin: number;
            duration: number;
            fixedSize?: boolean;
            animated?: boolean;
            opacity: number;
            fadeConfig?: Array<{
                programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                periodMins: number;
                leadingEdge?: boolean;
            }>;
        };
        onDemand: {
            enabled: boolean;
        };
        programCount: number;
        streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        transcodeConfigId: string;
        sessions?: Array<{
            type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
            state: string;
            numConnections: number;
            connections: Array<{
                ip: string;
                userAgent?: string;
                lastHeartbeat?: number;
            }>;
        }>;
        subtitlesEnabled: boolean;
        subtitlePreferences?: Array<{
            langugeCode: string;
            priority: number;
            allowImageBased: boolean;
            allowExternal: boolean;
            filter: 'none' | 'forced' | 'default' | 'any';
        }>;
    };
};

export type CreateChannelV2Response = CreateChannelV2Responses[keyof CreateChannelV2Responses];

export type DeleteApiChannelsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}';
};

export type DeleteApiChannelsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type DeleteApiChannelsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetChannelsByNumberV2Data = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}';
};

export type GetChannelsByNumberV2Errors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type GetChannelsByNumberV2Responses = {
    /**
     * Default Response
     */
    200: {
        disableFillerOverlay: boolean;
        duration: number;
        fallback?: Array<{
            artistName?: string;
            albumName?: string;
            channel?: string;
            customOrder?: number;
            customShowId?: string;
            customShowName?: string;
            date?: string;
            duration: number;
            episode?: number;
            episodeIcon?: string;
            file?: string;
            id: string;
            icon?: string;
            key?: string;
            plexFile?: string;
            rating?: string;
            externalKey?: string;
            season?: number;
            seasonIcon?: string;
            serverKey?: string;
            showIcon?: string;
            showTitle?: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            summary?: string;
            title?: string;
            type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
            year?: number;
        }>;
        fillerCollections?: Array<{
            id: string;
            weight: number;
            cooldownSeconds: number;
        }>;
        fillerRepeatCooldown?: number;
        groupTitle: string;
        guideFlexTitle?: string;
        guideMinimumDuration: number;
        icon: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        id: string;
        name: string;
        number: number;
        offline: {
            picture?: string;
            soundtrack?: string;
            mode: 'pic' | 'clip';
        };
        startTime: number;
        stealth: boolean;
        transcoding?: {
            targetResolution?: {
                widthPx: number;
                heightPx: number;
            };
            videoBitrate?: number;
            videoBufferSize?: number;
        };
        watermark?: {
            url?: string;
            enabled: boolean;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            width: number;
            verticalMargin: number;
            horizontalMargin: number;
            duration: number;
            fixedSize?: boolean;
            animated?: boolean;
            opacity: number;
            fadeConfig?: Array<{
                programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                periodMins: number;
                leadingEdge?: boolean;
            }>;
        };
        onDemand: {
            enabled: boolean;
        };
        programCount: number;
        streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        transcodeConfigId: string;
        sessions?: Array<{
            type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
            state: string;
            numConnections: number;
            connections: Array<{
                ip: string;
                userAgent?: string;
                lastHeartbeat?: number;
            }>;
        }>;
        subtitlesEnabled: boolean;
        subtitlePreferences?: Array<{
            langugeCode: string;
            priority: number;
            allowImageBased: boolean;
            allowExternal: boolean;
            filter: 'none' | 'forced' | 'default' | 'any';
        }>;
    };
};

export type GetChannelsByNumberV2Response = GetChannelsByNumberV2Responses[keyof GetChannelsByNumberV2Responses];

export type PutApiChannelsByIdData = {
    body: {
        disableFillerOverlay: boolean;
        duration: number;
        fillerCollections?: Array<{
            id: string;
            weight: number;
            cooldownSeconds: number;
        }>;
        fillerRepeatCooldown?: number;
        groupTitle: string;
        guideFlexTitle?: string;
        guideMinimumDuration: number;
        icon: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        id: string;
        name: string;
        number: number;
        offline: {
            picture?: string;
            soundtrack?: string;
            mode: 'pic' | 'clip';
        };
        startTime: number;
        stealth: boolean;
        watermark?: {
            url?: string;
            enabled: boolean;
            position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            width: number;
            verticalMargin: number;
            horizontalMargin: number;
            duration?: number;
            fixedSize?: boolean;
            animated?: boolean;
            opacity?: number;
            fadeConfig?: Array<{
                programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                periodMins: number;
                leadingEdge?: boolean;
            }>;
        };
        onDemand?: {
            enabled: boolean;
        };
        streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        transcodeConfigId: string;
        subtitlesEnabled: boolean;
        subtitlePreferences?: Array<{
            langugeCode: string;
            priority: number;
            allowImageBased: boolean;
            allowExternal: boolean;
            filter?: 'none' | 'forced' | 'default' | 'any';
        }>;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}';
};

export type PutApiChannelsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type PutApiChannelsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        disableFillerOverlay: boolean;
        duration: number;
        fallback?: Array<{
            artistName?: string;
            albumName?: string;
            channel?: string;
            customOrder?: number;
            customShowId?: string;
            customShowName?: string;
            date?: string;
            duration: number;
            episode?: number;
            episodeIcon?: string;
            file?: string;
            id: string;
            icon?: string;
            key?: string;
            plexFile?: string;
            rating?: string;
            externalKey?: string;
            season?: number;
            seasonIcon?: string;
            serverKey?: string;
            showIcon?: string;
            showTitle?: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            summary?: string;
            title?: string;
            type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
            year?: number;
        }>;
        fillerCollections?: Array<{
            id: string;
            weight: number;
            cooldownSeconds: number;
        }>;
        fillerRepeatCooldown?: number;
        groupTitle: string;
        guideFlexTitle?: string;
        guideMinimumDuration: number;
        icon: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        id: string;
        name: string;
        number: number;
        offline: {
            picture?: string;
            soundtrack?: string;
            mode: 'pic' | 'clip';
        };
        startTime: number;
        stealth: boolean;
        transcoding?: {
            targetResolution?: {
                widthPx: number;
                heightPx: number;
            };
            videoBitrate?: number;
            videoBufferSize?: number;
        };
        watermark?: {
            url?: string;
            enabled: boolean;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            width: number;
            verticalMargin: number;
            horizontalMargin: number;
            duration: number;
            fixedSize?: boolean;
            animated?: boolean;
            opacity: number;
            fadeConfig?: Array<{
                programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                periodMins: number;
                leadingEdge?: boolean;
            }>;
        };
        onDemand: {
            enabled: boolean;
        };
        programCount: number;
        streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        transcodeConfigId: string;
        sessions?: Array<{
            type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
            state: string;
            numConnections: number;
            connections: Array<{
                ip: string;
                userAgent?: string;
                lastHeartbeat?: number;
            }>;
        }>;
        subtitlesEnabled: boolean;
        subtitlePreferences?: Array<{
            langugeCode: string;
            priority: number;
            allowImageBased: boolean;
            allowExternal: boolean;
            filter: 'none' | 'forced' | 'default' | 'any';
        }>;
    };
};

export type PutApiChannelsByIdResponse = PutApiChannelsByIdResponses[keyof PutApiChannelsByIdResponses];

export type GetApiChannelsByIdProgramsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        limit?: number;
        offset?: number;
        type?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
    };
    url: '/api/channels/{id}/programs';
};

export type GetApiChannelsByIdProgramsErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiChannelsByIdProgramsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<{
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | MusicTrack | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }>;
        size: number;
        offset?: number;
    };
};

export type GetApiChannelsByIdProgramsResponse = GetApiChannelsByIdProgramsResponses[keyof GetApiChannelsByIdProgramsResponses];

export type GetApiChannelsByIdShowsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        limit?: number;
        offset?: number;
    };
    url: '/api/channels/{id}/shows';
};

export type GetApiChannelsByIdShowsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<Show>;
        size: number;
        offset?: number;
    };
};

export type GetApiChannelsByIdShowsResponse = GetApiChannelsByIdShowsResponses[keyof GetApiChannelsByIdShowsResponses];

export type GetApiChannelsByIdArtistsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        limit?: number;
        offset?: number;
    };
    url: '/api/channels/{id}/artists';
};

export type GetApiChannelsByIdArtistsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<MusicArtist>;
        size: number;
        offset?: number;
    };
};

export type GetApiChannelsByIdArtistsResponse = GetApiChannelsByIdArtistsResponses[keyof GetApiChannelsByIdArtistsResponses];

export type GetApiChannelsByIdProgrammingData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        offset?: number;
        limit?: number;
    };
    url: '/api/channels/{id}/programming';
};

export type GetApiChannelsByIdProgrammingErrors = {
    /**
     * Default Response
     */
    404: {
        error: string;
    };
};

export type GetApiChannelsByIdProgrammingError = GetApiChannelsByIdProgrammingErrors[keyof GetApiChannelsByIdProgrammingErrors];

export type GetApiChannelsByIdProgrammingResponses = {
    /**
     * Default Response
     */
    200: {
        icon?: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        name?: string;
        number?: number;
        totalPrograms: number;
        programs: {
            [key: string]: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        };
        lineup: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        }>;
        startTimeOffsets: Array<number>;
        schedule?: {
            type: 'time';
            flexPreference: 'distribute' | 'end';
            latenessMs: number;
            maxDays: number;
            padMs: number;
            period: 'day' | 'week';
            slots: Array<{
                startTime: number;
                type: 'movie';
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'flex';
            } | {
                type: 'redirect';
                channelId: string;
                channelName?: string;
                startTime: number;
            } | {
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                startTime: number;
            } | {
                type: 'custom-show';
                customShowId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                startTime: number;
            } | {
                startTime: number;
                type: 'smart-collection';
                smartCollectionId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            }>;
            timeZoneOffset: number;
            startTomorrow?: boolean;
        } | {
            type: 'random';
            flexPreference: 'distribute' | 'end';
            maxDays: number;
            padMs: number;
            padStyle: 'slot' | 'episode';
            slots: Array<{
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'movie';
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'flex';
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'redirect';
                channelId: string;
                channelName?: string;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'custom-show';
                customShowId: string;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'smart-collection';
                smartCollectionId: string;
            }>;
            timeZoneOffset?: number;
            randomDistribution: 'uniform' | 'weighted' | 'none';
            periodMs?: number;
            lockWeights: boolean;
        };
        dynamicContentConfig?: {
            contentSources: Array<{
                type: 'plex';
                plexServerId: string;
                plexLibraryKey: string;
                search?: {
                    filter?: PlexFilter;
                    sort?: {
                        field: string;
                        direction: 'asc' | 'desc';
                    };
                    limit?: number;
                };
                updater: {
                    _id: string;
                    type: 'cron';
                    schedule: string;
                };
                enabled: boolean;
            }>;
            enabled: boolean;
        };
    };
};

export type GetApiChannelsByIdProgrammingResponse = GetApiChannelsByIdProgrammingResponses[keyof GetApiChannelsByIdProgrammingResponses];

export type PostApiChannelsByIdProgrammingData = {
    body: {
        type: 'manual';
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        }>;
        lineup: Array<{
            type: 'index';
            index: number;
            duration?: number;
        } | {
            type: 'persisted';
            programId: string;
            customShowId?: string;
            duration: number;
        }>;
        append?: boolean;
    } | {
        type: 'time';
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        }>;
        schedule: {
            type: 'time';
            flexPreference: 'distribute' | 'end';
            latenessMs: number;
            maxDays: number;
            padMs: number;
            period: 'day' | 'week';
            slots: Array<{
                startTime: number;
                type: 'movie';
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'show';
                showId: string;
                seasonFilter?: Array<number>;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'flex';
            } | {
                type: 'redirect';
                channelId: string;
                channelName?: string;
                startTime: number;
            } | {
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                startTime: number;
            } | {
                type: 'custom-show';
                customShowId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                startTime: number;
            } | {
                startTime: number;
                type: 'smart-collection';
                smartCollectionId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            }>;
            timeZoneOffset: number;
            startTomorrow?: boolean;
        };
        seed?: Array<number>;
        discardCount?: number;
    } | {
        type: 'random';
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        }>;
        schedule: {
            type: 'random';
            flexPreference: 'distribute' | 'end';
            maxDays: number;
            padMs: number;
            padStyle: 'slot' | 'episode';
            slots: Array<{
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'movie';
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'show';
                showId: string;
                seasonFilter?: Array<number>;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'flex';
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'redirect';
                channelId: string;
                channelName?: string;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'custom-show';
                customShowId: string;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'smart-collection';
                smartCollectionId: string;
            }>;
            timeZoneOffset?: number;
            randomDistribution: 'uniform' | 'weighted' | 'none';
            periodMs?: number;
            lockWeights?: boolean;
        };
        seed?: Array<number>;
        discardCount?: number;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}/programming';
};

export type PostApiChannelsByIdProgrammingErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
    /**
     * Default Response
     */
    501: unknown;
};

export type PostApiChannelsByIdProgrammingResponses = {
    /**
     * Default Response
     */
    200: {
        icon?: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        name?: string;
        number?: number;
        totalPrograms: number;
        programs: {
            [key: string]: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        };
        lineup: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        }>;
        startTimeOffsets: Array<number>;
        schedule?: {
            type: 'time';
            flexPreference: 'distribute' | 'end';
            latenessMs: number;
            maxDays: number;
            padMs: number;
            period: 'day' | 'week';
            slots: Array<{
                startTime: number;
                type: 'movie';
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'flex';
            } | {
                type: 'redirect';
                channelId: string;
                channelName?: string;
                startTime: number;
            } | {
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                startTime: number;
            } | {
                type: 'custom-show';
                customShowId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                startTime: number;
            } | {
                startTime: number;
                type: 'smart-collection';
                smartCollectionId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            }>;
            timeZoneOffset: number;
            startTomorrow?: boolean;
        } | {
            type: 'random';
            flexPreference: 'distribute' | 'end';
            maxDays: number;
            padMs: number;
            padStyle: 'slot' | 'episode';
            slots: Array<{
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'movie';
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'flex';
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'redirect';
                channelId: string;
                channelName?: string;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'custom-show';
                customShowId: string;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'smart-collection';
                smartCollectionId: string;
            }>;
            timeZoneOffset?: number;
            randomDistribution: 'uniform' | 'weighted' | 'none';
            periodMs?: number;
            lockWeights: boolean;
        };
        dynamicContentConfig?: {
            contentSources: Array<{
                type: 'plex';
                plexServerId: string;
                plexLibraryKey: string;
                search?: {
                    filter?: PlexFilter;
                    sort?: {
                        field: string;
                        direction: 'asc' | 'desc';
                    };
                    limit?: number;
                };
                updater: {
                    _id: string;
                    type: 'cron';
                    schedule: string;
                };
                enabled: boolean;
            }>;
            enabled: boolean;
        };
    };
};

export type PostApiChannelsByIdProgrammingResponse = PostApiChannelsByIdProgrammingResponses[keyof PostApiChannelsByIdProgrammingResponses];

export type GetChannelFallbacksData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        from?: string;
        to?: string;
        includePrograms?: boolean;
    };
    url: '/api/channels/{id}/fallbacks';
};

export type GetChannelFallbacksErrors = {
    /**
     * Default Response
     */
    404: {
        error: string;
    };
};

export type GetChannelFallbacksError = GetChannelFallbacksErrors[keyof GetChannelFallbacksErrors];

export type GetChannelFallbacksResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id?: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
    }>;
};

export type GetChannelFallbacksResponse = GetChannelFallbacksResponses[keyof GetChannelFallbacksResponses];

export type GetApiChannelsAllLineupsData = {
    body?: never;
    path?: never;
    query?: {
        from?: string;
        to?: string;
        includePrograms?: boolean;
    };
    url: '/api/channels/all/lineups';
};

export type GetApiChannelsAllLineupsErrors = {
    /**
     * Default Response
     */
    400: string;
};

export type GetApiChannelsAllLineupsError = GetApiChannelsAllLineupsErrors[keyof GetApiChannelsAllLineupsErrors];

export type GetApiChannelsAllLineupsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        icon?: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        name: string;
        number: number;
        id: string;
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
            title: string;
        }>;
    }>;
};

export type GetApiChannelsAllLineupsResponse = GetApiChannelsAllLineupsResponses[keyof GetApiChannelsAllLineupsResponses];

export type GetApiChannelsByIdLineupData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        from?: string;
        to?: string;
        includePrograms?: boolean;
    };
    url: '/api/channels/{id}/lineup';
};

export type GetApiChannelsByIdLineupErrors = {
    /**
     * Default Response
     */
    400: {
        error: string;
    };
    /**
     * Default Response
     */
    404: {
        error: string;
    };
};

export type GetApiChannelsByIdLineupError = GetApiChannelsByIdLineupErrors[keyof GetApiChannelsByIdLineupErrors];

export type GetApiChannelsByIdLineupResponses = {
    /**
     * Default Response
     */
    200: {
        icon?: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        name: string;
        number: number;
        id: string;
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
            title: string;
        }>;
    };
};

export type GetApiChannelsByIdLineupResponse = GetApiChannelsByIdLineupResponses[keyof GetApiChannelsByIdLineupResponses];

export type GetApiChannelsByIdNowPlayingData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}/now_playing';
};

export type GetApiChannelsByIdNowPlayingErrors = {
    /**
     * Default Response
     */
    400: {
        error: string;
    };
    /**
     * Default Response
     */
    404: {
        error: string;
    };
};

export type GetApiChannelsByIdNowPlayingError = GetApiChannelsByIdNowPlayingErrors[keyof GetApiChannelsByIdNowPlayingErrors];

export type GetApiChannelsByIdNowPlayingResponses = {
    /**
     * Default Response
     */
    200: {
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
        start: number;
        stop: number;
        isPaused: boolean;
        timeRemaining?: number;
    } | {
        type: 'custom';
        persisted: boolean;
        duration: number;
        icon?: string;
        id: string;
        customShowId: string;
        index: number;
        program?: {
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        };
        start: number;
        stop: number;
        isPaused: boolean;
        timeRemaining?: number;
    } | {
        type: 'redirect';
        persisted: boolean;
        duration: number;
        icon?: string;
        channel: string;
        channelNumber: number;
        channelName: string;
        start: number;
        stop: number;
        isPaused: boolean;
        timeRemaining?: number;
    } | {
        type: 'flex';
        persisted: boolean;
        duration: number;
        icon?: string;
        start: number;
        stop: number;
        isPaused: boolean;
        timeRemaining?: number;
        title: string;
    };
};

export type GetApiChannelsByIdNowPlayingResponse = GetApiChannelsByIdNowPlayingResponses[keyof GetApiChannelsByIdNowPlayingResponses];

export type GetApiChannelsByIdTranscodeConfigData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}/transcode_config';
};

export type GetApiChannelsByIdTranscodeConfigResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    };
};

export type GetApiChannelsByIdTranscodeConfigResponse = GetApiChannelsByIdTranscodeConfigResponses[keyof GetApiChannelsByIdTranscodeConfigResponses];

export type PostApiChannelsByChannelIdScheduleTimeSlotsData = {
    body: {
        schedule: {
            type: 'time';
            flexPreference: 'distribute' | 'end';
            latenessMs: number;
            maxDays: number;
            padMs: number;
            period: 'day' | 'week';
            slots: Array<{
                startTime: number;
                type: 'movie';
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'show';
                showId: string;
                seasonFilter?: Array<number>;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'flex';
            } | {
                type: 'redirect';
                channelId: string;
                channelName?: string;
                startTime: number;
            } | {
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                startTime: number;
            } | {
                type: 'custom-show';
                customShowId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                startTime: number;
            } | {
                startTime: number;
                type: 'smart-collection';
                smartCollectionId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            }>;
            timeZoneOffset: number;
            startTomorrow?: boolean;
        };
    };
    path: {
        channelId: string;
    };
    query?: never;
    url: '/api/channels/{channelId}/schedule-time-slots';
};

export type PostApiChannelsByChannelIdScheduleTimeSlotsResponses = {
    /**
     * Default Response
     */
    200: {
        startTime: number;
        lineup: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        }>;
        seed: Array<number>;
        discardCount: number;
        programs: {
            [key: string]: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        };
    };
};

export type PostApiChannelsByChannelIdScheduleTimeSlotsResponse = PostApiChannelsByChannelIdScheduleTimeSlotsResponses[keyof PostApiChannelsByChannelIdScheduleTimeSlotsResponses];

export type PostApiChannelsByChannelIdScheduleSlotsData = {
    body: {
        schedule: {
            type: 'random';
            flexPreference: 'distribute' | 'end';
            maxDays: number;
            padMs: number;
            padStyle: 'slot' | 'episode';
            slots: Array<{
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'movie';
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'show';
                showId: string;
                seasonFilter?: Array<number>;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'flex';
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'redirect';
                channelId: string;
                channelName?: string;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'custom-show';
                customShowId: string;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder?: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec?: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction?: 'asc' | 'desc';
                type: 'smart-collection';
                smartCollectionId: string;
            }>;
            timeZoneOffset?: number;
            randomDistribution: 'uniform' | 'weighted' | 'none';
            periodMs?: number;
            lockWeights?: boolean;
        };
    };
    path: {
        channelId: string;
    };
    query?: never;
    url: '/api/channels/{channelId}/schedule-slots';
};

export type PostApiChannelsByChannelIdScheduleSlotsResponses = {
    /**
     * Default Response
     */
    200: {
        startTime: number;
        lineup: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
        } | {
            type: 'filler';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            fillerListId: string;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
            };
            fillerType?: 'pre' | 'post' | 'head' | 'tail' | 'fallback';
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
        }>;
        seed: Array<number>;
        discardCount: number;
        programs: {
            [key: string]: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        };
    };
};

export type PostApiChannelsByChannelIdScheduleSlotsResponse = PostApiChannelsByChannelIdScheduleSlotsResponses[keyof PostApiChannelsByChannelIdScheduleSlotsResponses];

export type GetApiChannelsByIdScheduleData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/channels/{id}/schedule';
};

export type GetApiChannelsByIdScheduleResponses = {
    /**
     * Default Response
     */
    200: {
        schedule?: {
            type: 'time';
            flexPreference: 'distribute' | 'end';
            latenessMs: number;
            maxDays: number;
            padMs: number;
            period: 'day' | 'week';
            slots: Array<{
                startTime: number;
                type: 'movie';
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
            } | {
                startTime: number;
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                show: Show | null;
                /**
                 * A show that existed in the DB at schedule time, but no longer exists.
                 */
                missingShow?: {
                    title?: string;
                };
            } | {
                startTime: number;
                type: 'flex';
            } | {
                type: 'redirect';
                channelId: string;
                channelName?: string;
                startTime: number;
                channel: {
                    disableFillerOverlay: boolean;
                    duration: number;
                    fallback?: Array<{
                        artistName?: string;
                        albumName?: string;
                        channel?: string;
                        customOrder?: number;
                        customShowId?: string;
                        customShowName?: string;
                        date?: string;
                        duration: number;
                        episode?: number;
                        episodeIcon?: string;
                        file?: string;
                        id: string;
                        icon?: string;
                        key?: string;
                        plexFile?: string;
                        rating?: string;
                        externalKey?: string;
                        season?: number;
                        seasonIcon?: string;
                        serverKey?: string;
                        showIcon?: string;
                        showTitle?: string;
                        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                        summary?: string;
                        title?: string;
                        type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
                        year?: number;
                    }>;
                    fillerCollections?: Array<{
                        id: string;
                        weight: number;
                        cooldownSeconds: number;
                    }>;
                    fillerRepeatCooldown?: number;
                    groupTitle: string;
                    guideFlexTitle?: string;
                    guideMinimumDuration: number;
                    icon: {
                        path: string;
                        width: number;
                        duration: number;
                        position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
                    };
                    id: string;
                    name: string;
                    number: number;
                    offline: {
                        picture?: string;
                        soundtrack?: string;
                        mode: 'pic' | 'clip';
                    };
                    startTime: number;
                    stealth: boolean;
                    transcoding?: {
                        targetResolution?: {
                            widthPx: number;
                            heightPx: number;
                        };
                        videoBitrate?: number;
                        videoBufferSize?: number;
                    };
                    watermark?: {
                        url?: string;
                        enabled: boolean;
                        position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
                        width: number;
                        verticalMargin: number;
                        horizontalMargin: number;
                        duration: number;
                        fixedSize?: boolean;
                        animated?: boolean;
                        opacity: number;
                        fadeConfig?: Array<{
                            programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                            periodMins: number;
                            leadingEdge?: boolean;
                        }>;
                    };
                    onDemand: {
                        enabled: boolean;
                    };
                    programCount: number;
                    streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
                    transcodeConfigId: string;
                    sessions?: Array<{
                        type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
                        state: string;
                        numConnections: number;
                        connections: Array<{
                            ip: string;
                            userAgent?: string;
                            lastHeartbeat?: number;
                        }>;
                    }>;
                    subtitlesEnabled: boolean;
                    subtitlePreferences?: Array<{
                        langugeCode: string;
                        priority: number;
                        allowImageBased: boolean;
                        allowExternal: boolean;
                        filter: 'none' | 'forced' | 'default' | 'any';
                    }>;
                } | null;
                isMissing: boolean;
            } | {
                type: 'custom-show';
                customShowId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                startTime: number;
                customShow: {
                    id: string;
                    name: string;
                    contentCount: number;
                } | null;
                isMissing: boolean;
            } | {
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                startTime: number;
                fillerList: {
                    id: string;
                    name: string;
                    contentCount: number;
                } | null;
                isMissing: boolean;
            } | {
                startTime: number;
                type: 'smart-collection';
                smartCollectionId: string;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                smartCollection: {
                    uuid: string;
                    name: string;
                    query: string;
                } | null;
                isMissing: boolean;
            }>;
            timeZoneOffset: number;
            startTomorrow?: boolean;
        } | {
            type: 'random';
            flexPreference: 'distribute' | 'end';
            maxDays: number;
            padMs: number;
            padStyle: 'slot' | 'episode';
            slots: Array<{
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'movie';
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'show';
                showId: string;
                seasonFilter: Array<number>;
                show: Show | null;
                /**
                 * A show that existed in the DB at schedule time, but no longer exists.
                 */
                missingShow?: {
                    title?: string;
                };
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'flex';
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'redirect';
                channelId: string;
                channelName?: string;
                channel: {
                    disableFillerOverlay: boolean;
                    duration: number;
                    fallback?: Array<{
                        artistName?: string;
                        albumName?: string;
                        channel?: string;
                        customOrder?: number;
                        customShowId?: string;
                        customShowName?: string;
                        date?: string;
                        duration: number;
                        episode?: number;
                        episodeIcon?: string;
                        file?: string;
                        id: string;
                        icon?: string;
                        key?: string;
                        plexFile?: string;
                        rating?: string;
                        externalKey?: string;
                        season?: number;
                        seasonIcon?: string;
                        serverKey?: string;
                        showIcon?: string;
                        showTitle?: string;
                        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                        summary?: string;
                        title?: string;
                        type: 'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex';
                        year?: number;
                    }>;
                    fillerCollections?: Array<{
                        id: string;
                        weight: number;
                        cooldownSeconds: number;
                    }>;
                    fillerRepeatCooldown?: number;
                    groupTitle: string;
                    guideFlexTitle?: string;
                    guideMinimumDuration: number;
                    icon: {
                        path: string;
                        width: number;
                        duration: number;
                        position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
                    };
                    id: string;
                    name: string;
                    number: number;
                    offline: {
                        picture?: string;
                        soundtrack?: string;
                        mode: 'pic' | 'clip';
                    };
                    startTime: number;
                    stealth: boolean;
                    transcoding?: {
                        targetResolution?: {
                            widthPx: number;
                            heightPx: number;
                        };
                        videoBitrate?: number;
                        videoBufferSize?: number;
                    };
                    watermark?: {
                        url?: string;
                        enabled: boolean;
                        position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
                        width: number;
                        verticalMargin: number;
                        horizontalMargin: number;
                        duration: number;
                        fixedSize?: boolean;
                        animated?: boolean;
                        opacity: number;
                        fadeConfig?: Array<{
                            programType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                            periodMins: number;
                            leadingEdge?: boolean;
                        }>;
                    };
                    onDemand: {
                        enabled: boolean;
                    };
                    programCount: number;
                    streamMode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
                    transcodeConfigId: string;
                    sessions?: Array<{
                        type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
                        state: string;
                        numConnections: number;
                        connections: Array<{
                            ip: string;
                            userAgent?: string;
                            lastHeartbeat?: number;
                        }>;
                    }>;
                    subtitlesEnabled: boolean;
                    subtitlePreferences?: Array<{
                        langugeCode: string;
                        priority: number;
                        allowImageBased: boolean;
                        allowExternal: boolean;
                        filter: 'none' | 'forced' | 'default' | 'any';
                    }>;
                } | null;
                isMissing: boolean;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'custom-show';
                customShowId: string;
                customShow: {
                    id: string;
                    name: string;
                    contentCount: number;
                } | null;
                isMissing: boolean;
            } | {
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                type: 'filler';
                fillerListId: string;
                order: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                durationWeighting: 'linear' | 'log';
                decayFactor: number;
                recoveryFactor: number;
                fillerList: {
                    id: string;
                    name: string;
                    contentCount: number;
                } | null;
                isMissing: boolean;
            } | {
                filler?: Array<{
                    types: Array<'head' | 'pre' | 'post' | 'tail' | 'fallback'>;
                    fillerListId: string;
                    fillerOrder: 'shuffle_prefer_short' | 'shuffle_prefer_long' | 'uniform';
                }>;
                cooldownMs: number;
                periodMs?: number;
                durationSpec: {
                    durationMs: number;
                    type: 'fixed';
                } | {
                    type: 'dynamic';
                    programCount: number;
                };
                weight: number;
                index?: number;
                order: 'next' | 'shuffle' | 'ordered_shuffle' | 'alphanumeric' | 'chronological';
                direction: 'asc' | 'desc';
                type: 'smart-collection';
                smartCollectionId: string;
            }>;
            timeZoneOffset?: number;
            randomDistribution: 'uniform' | 'weighted' | 'none';
            periodMs?: number;
            lockWeights: boolean;
        };
    };
};

export type GetApiChannelsByIdScheduleResponse = GetApiChannelsByIdScheduleResponses[keyof GetApiChannelsByIdScheduleResponses];

export type GetApiCustomShowsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/custom-shows';
};

export type GetApiCustomShowsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
        totalDuration: number;
    }>;
};

export type GetApiCustomShowsResponse = GetApiCustomShowsResponses[keyof GetApiCustomShowsResponses];

export type CreateCustomShowData = {
    body: {
        name: string;
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
    path?: never;
    query?: never;
    url: '/api/custom-shows';
};

export type CreateCustomShowResponses = {
    /**
     * Default Response
     */
    201: {
        id: string;
    };
};

export type CreateCustomShowResponse = CreateCustomShowResponses[keyof CreateCustomShowResponses];

export type DeleteCustomShowData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/custom-shows/{id}';
};

export type DeleteCustomShowErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type DeleteCustomShowResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
    };
};

export type DeleteCustomShowResponse = DeleteCustomShowResponses[keyof DeleteCustomShowResponses];

export type GetApiCustomShowsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/custom-shows/{id}';
};

export type GetApiCustomShowsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiCustomShowsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
        totalDuration: number;
    };
};

export type GetApiCustomShowsByIdResponse = GetApiCustomShowsByIdResponses[keyof GetApiCustomShowsByIdResponses];

export type PutApiCustomShowsByIdData = {
    body?: {
        name?: string;
        programs?: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/custom-shows/{id}';
};

export type PutApiCustomShowsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type PutApiCustomShowsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
        totalDuration: number;
    };
};

export type PutApiCustomShowsByIdResponse = PutApiCustomShowsByIdResponses[keyof PutApiCustomShowsByIdResponses];

export type GetApiCustomShowsByIdProgramsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/custom-shows/{id}/programs';
};

export type GetApiCustomShowsByIdProgramsErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiCustomShowsByIdProgramsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'custom';
        persisted: boolean;
        duration: number;
        icon?: string;
        id: string;
        customShowId: string;
        index: number;
        program?: {
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        };
    }>;
};

export type GetApiCustomShowsByIdProgramsResponse = GetApiCustomShowsByIdProgramsResponses[keyof GetApiCustomShowsByIdProgramsResponses];

export type GetApiFillerListsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/filler-lists';
};

export type GetApiFillerListsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    }>;
};

export type GetApiFillerListsResponse = GetApiFillerListsResponses[keyof GetApiFillerListsResponses];

export type PostApiFillerListsData = {
    body: {
        name: string;
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
    path?: never;
    query?: never;
    url: '/api/filler-lists';
};

export type PostApiFillerListsResponses = {
    /**
     * Default Response
     */
    201: {
        id: string;
    };
};

export type PostApiFillerListsResponse = PostApiFillerListsResponses[keyof PostApiFillerListsResponses];

export type DeleteApiFillerListsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/filler-lists/{id}';
};

export type DeleteApiFillerListsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type DeleteApiFillerListsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiFillerListsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/filler-lists/{id}';
};

export type GetApiFillerListsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiFillerListsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
};

export type GetApiFillerListsByIdResponse = GetApiFillerListsByIdResponses[keyof GetApiFillerListsByIdResponses];

export type PutApiFillerListsByIdData = {
    body?: {
        name?: string;
        programs?: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/filler-lists/{id}';
};

export type PutApiFillerListsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type PutApiFillerListsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        contentCount: number;
        programs?: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
        }>;
    };
};

export type PutApiFillerListsByIdResponse = PutApiFillerListsByIdResponses[keyof PutApiFillerListsByIdResponses];

export type GetApiFillerListsByIdProgramsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/filler-lists/{id}/programs';
};

export type GetApiFillerListsByIdProgramsErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiFillerListsByIdProgramsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id?: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
    } | {
        type: 'custom';
        persisted: boolean;
        duration: number;
        icon?: string;
        id: string;
        customShowId: string;
        index: number;
        program?: {
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        };
    }>;
};

export type GetApiFillerListsByIdProgramsResponse = GetApiFillerListsByIdProgramsResponses[keyof GetApiFillerListsByIdProgramsResponses];

export type PostApiProgramsSearchData = {
    body: {
        query: {
            query?: string | null;
            restrictSearchTo?: Array<string>;
            filter?: SearchFilterInput | null;
            sort?: Array<{
                field: 'title' | 'sortTitle' | 'duration' | 'originalReleaseDate' | 'originalReleaseYear' | 'index';
                direction: 'asc' | 'desc';
            }> | null;
        };
        restrictSeachTo?: Array<string>;
        mediaSourceId?: string;
        libraryId?: string;
        page?: number;
        limit?: number;
    };
    path?: never;
    query?: never;
    url: '/api/programs/search';
};

export type PostApiProgramsSearchResponses = {
    /**
     * Default Response
     */
    200: {
        results: Array<(({
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | MusicTrack | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }) | (Show | Season | MusicArtist | MusicAlbum)) | ({
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'folder';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'collection';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        })>;
        page: number;
        totalPages: number;
        totalHits: number;
        facetDistribution?: {
            [key: string]: {
                [key: string]: number;
            };
        };
    };
};

export type PostApiProgramsSearchResponse = PostApiProgramsSearchResponses[keyof PostApiProgramsSearchResponses];

export type GetApiProgramsByIdDescendantsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programs/{id}/descendants';
};

export type GetApiProgramsByIdDescendantsErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiProgramsByIdDescendantsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id?: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
    }>;
};

export type GetApiProgramsByIdDescendantsResponse = GetApiProgramsByIdDescendantsResponses[keyof GetApiProgramsByIdDescendantsResponses];

export type GetApiProgramsFacetsByFacetNameData = {
    body?: never;
    path: {
        facetName: string;
    };
    query?: {
        facetQuery?: string;
        mediaSourceId?: string;
        libraryId?: string;
    };
    url: '/api/programs/facets/{facetName}';
};

export type GetApiProgramsFacetsByFacetNameResponses = {
    /**
     * Default Response
     */
    200: {
        facetValues: {
            [key: string]: number;
        };
    };
};

export type GetApiProgramsFacetsByFacetNameResponse = GetApiProgramsFacetsByFacetNameResponses[keyof GetApiProgramsFacetsByFacetNameResponses];

export type PostApiProgramsFacetsByFacetNameData = {
    body?: {
        filter?: SearchFilterInput;
    };
    path: {
        facetName: string;
    };
    query?: {
        facetQuery?: string;
        mediaSourceId?: string;
        libraryId?: string;
    };
    url: '/api/programs/facets/{facetName}';
};

export type PostApiProgramsFacetsByFacetNameResponses = {
    /**
     * Default Response
     */
    200: {
        facetValues: {
            [key: string]: number;
        };
    };
};

export type PostApiProgramsFacetsByFacetNameResponse = PostApiProgramsFacetsByFacetNameResponses[keyof PostApiProgramsFacetsByFacetNameResponses];

export type GetApiProgramsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programs/{id}';
};

export type GetApiProgramsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type GetApiProgramsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'movie';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        summary: string | null;
        plot: string | null;
        tagline: string | null;
        rating: string | null;
    } | Episode | MusicTrack | {
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'other_video';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
    } | {
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'music_video';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
    };
};

export type GetApiProgramsByIdResponse = GetApiProgramsByIdResponses[keyof GetApiProgramsByIdResponses];

export type GetApiProgramGroupingsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/program_groupings/{id}';
};

export type GetApiProgramGroupingsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type GetApiProgramGroupingsByIdResponses = {
    /**
     * Default Response
     */
    200: Show | Season | MusicArtist | MusicAlbum;
};

export type GetApiProgramGroupingsByIdResponse = GetApiProgramGroupingsByIdResponses[keyof GetApiProgramGroupingsByIdResponses];

export type GetApiProgramsByIdArtworkByArtworkTypeData = {
    body?: never;
    path: {
        id: string;
        artworkType: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
    };
    query?: never;
    url: '/api/programs/{id}/artwork/{artworkType}';
};

export type GetApiProgramsByIdArtworkByArtworkTypeErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiProgramsByIdArtworkByArtworkTypeResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiProgramsByIdStreamDetailsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programs/{id}/stream_details';
};

export type GetApiProgramsByIdStreamDetailsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiProgramsByIdChildrenData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        limit?: number;
        offset?: number;
        channelId?: string;
    };
    url: '/api/programs/{id}/children';
};

export type GetApiProgramsByIdChildrenErrors = {
    /**
     * Default Response
     */
    400: unknown;
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiProgramsByIdChildrenResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: {
            type: 'season';
            programs: Array<Season>;
        } | {
            type: 'album';
            programs: Array<MusicAlbum>;
        } | {
            type: 'episode';
            programs: Array<Episode>;
        } | {
            type: 'track';
            programs: Array<MusicTrack>;
        };
        size: number;
        offset?: number;
    };
};

export type GetApiProgramsByIdChildrenResponse = GetApiProgramsByIdChildrenResponses[keyof GetApiProgramsByIdChildrenResponses];

export type GetApiProgramsByIdThumbData = {
    body?: never;
    path: {
        id: string;
    };
    query: {
        width?: number;
        height?: number;
        upscale?: boolean;
        method: 'proxy' | 'redirect';
        useShowPoster?: boolean | 'true' | 'false' | number;
        type: 'program' | 'grouping';
    };
    url: '/api/programs/{id}/thumb';
};

export type GetApiProgramsByIdThumbResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiProgramsByIdExternalLinkData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        forward?: boolean;
    };
    url: '/api/programs/{id}/external-link';
};

export type GetApiProgramsByIdExternalLinkErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    405: unknown;
};

export type GetApiProgramsByIdExternalLinkResponses = {
    /**
     * Default Response
     */
    200: {
        url: string;
    };
};

export type GetApiProgramsByIdExternalLinkResponse = GetApiProgramsByIdExternalLinkResponses[keyof GetApiProgramsByIdExternalLinkResponses];

export type GetProgramByExternalIdData = {
    body?: never;
    path: {
        externalId: string;
    };
    query?: never;
    url: '/api/programming/{externalId}';
};

export type GetProgramByExternalIdErrors = {
    /**
     * Default Response
     */
    400: {
        message: string;
    };
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: string;
};

export type GetProgramByExternalIdError = GetProgramByExternalIdErrors[keyof GetProgramByExternalIdErrors];

export type GetProgramByExternalIdResponses = {
    /**
     * Default Response
     */
    200: {
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id?: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
    };
};

export type GetProgramByExternalIdResponse = GetProgramByExternalIdResponses[keyof GetProgramByExternalIdResponses];

export type BatchGetProgramsByExternalIdsData = {
    body: {
        externalIds: Array<string>;
    };
    path?: never;
    query?: never;
    url: '/api/programming/batch/lookup';
};

export type BatchGetProgramsByExternalIdsResponses = {
    /**
     * Default Response
     */
    200: {
        [key: string]: {
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id?: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
        };
    };
};

export type BatchGetProgramsByExternalIdsResponse = BatchGetProgramsByExternalIdsResponses[keyof BatchGetProgramsByExternalIdsResponses];

export type GetApiProgrammingShowsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        includeEpisodes?: boolean | 'true' | 'false' | number;
    };
    url: '/api/programming/shows/{id}';
};

export type GetApiProgrammingShowsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiProgrammingSeasonsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programming/seasons/{id}';
};

export type GetApiProgrammingSeasonsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiProgrammingShowsByIdSeasonsData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programming/shows/{id}/seasons';
};

export type GetApiProgrammingShowsByIdSeasonsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PostApiProgramsByIdScanData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/programs/{id}/scan';
};

export type PostApiProgramsByIdScanErrors = {
    /**
     * Default Response
     */
    400: string;
    /**
     * Default Response
     */
    404: string;
    /**
     * Default Response
     */
    500: string;
};

export type PostApiProgramsByIdScanError = PostApiProgramsByIdScanErrors[keyof PostApiProgramsByIdScanErrors];

export type PostApiProgramsByIdScanResponses = {
    /**
     * Default Response
     */
    202: unknown;
};

export type GetApiDebugJellyfinLibrariesData = {
    body?: never;
    path?: never;
    query: {
        userId?: string;
        uri: string;
        apiKey: string;
    };
    url: '/api/debug/jellyfin/libraries';
};

export type GetApiDebugJellyfinLibrariesResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugJellyfinLibraryItemsData = {
    body?: never;
    path?: never;
    query: {
        uri: string;
        parentId?: string | null;
        offset?: number;
        limit?: number;
        apiKey: string;
    };
    url: '/api/debug/jellyfin/library/items';
};

export type GetApiDebugJellyfinLibraryItemsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugJellyfinMatchProgramByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/debug/jellyfin/match_program/{id}';
};

export type GetApiDebugJellyfinMatchProgramByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugJellyfinByLibraryIdEnumerateData = {
    body?: never;
    path: {
        libraryId: string;
    };
    query?: never;
    url: '/api/debug/jellyfin/{libraryId}/enumerate';
};

export type GetApiDebugJellyfinByLibraryIdEnumerateResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugStreamsOfflineData = {
    body?: never;
    path?: never;
    query?: {
        duration?: number;
    };
    url: '/api/debug/streams/offline';
};

export type GetApiDebugStreamsOfflineResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugStreamsErrorData = {
    body?: never;
    path?: never;
    query?: {
        channelId?: string | number;
    };
    url: '/api/debug/streams/error';
};

export type GetApiDebugStreamsErrorResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugStreamsRandomData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/streams/random';
};

export type GetApiDebugStreamsRandomResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugStreamsProgramsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        start?: 'random' | number;
    };
    url: '/api/debug/streams/programs/{id}';
};

export type GetApiDebugStreamsProgramsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugFfmpegProbeData = {
    body?: never;
    path?: never;
    query: {
        path: string;
    };
    url: '/api/debug/ffmpeg/probe';
};

export type GetApiDebugFfmpegProbeResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugFfmpegCapabilitiesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/ffmpeg/capabilities';
};

export type GetApiDebugFfmpegCapabilitiesResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugPlexStreamDetailsData = {
    body?: never;
    path?: never;
    query: {
        key: string;
        mediaSource: string;
    };
    url: '/api/debug/plex/stream_details';
};

export type GetApiDebugPlexStreamDetailsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugHeapData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/heap';
};

export type GetApiDebugHeapResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugHelpersPlayingAtData = {
    body?: never;
    path?: never;
    query: {
        channelId: number | string;
        ts?: number;
    };
    url: '/api/debug/helpers/playing_at';
};

export type GetApiDebugHelpersPlayingAtResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugHelpersCreateGuideData = {
    body?: never;
    path?: never;
    query: {
        channelId: string;
        live: boolean;
        startTime?: number;
        endTime?: number;
    };
    url: '/api/debug/helpers/create_guide';
};

export type GetApiDebugHelpersCreateGuideResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugHelpersChannelsByIdBuildGuideData = {
    body?: never;
    path: {
        id: string;
    };
    query: {
        from: number;
        to: number;
    };
    url: '/api/debug/helpers/channels/{id}/build_guide';
};

export type GetApiDebugHelpersChannelsByIdBuildGuideResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugHelpersBuildGuideData = {
    body?: never;
    path?: never;
    query?: {
        from?: unknown;
        to?: unknown;
        includePrograms?: boolean;
    };
    url: '/api/debug/helpers/build_guide';
};

export type GetApiDebugHelpersBuildGuideResponses = {
    /**
     * Default Response
     */
    200: Array<{
        icon?: {
            path: string;
            width: number;
            duration: number;
            position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
        };
        name: string;
        number: number;
        id: string;
        programs: Array<{
            type: 'content';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
            summary?: string;
            date?: string;
            year?: number;
            rating?: string;
            serverFileKey?: string;
            serverFilePath?: string;
            title: string;
            showId?: string;
            seasonId?: string;
            seasonNumber?: number;
            episodeNumber?: number;
            albumId?: string;
            artistId?: string;
            index?: number;
            parent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'season';
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'album';
            };
            grandparent?: {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'show';
                seasons?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            } | {
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
                type: 'artist';
                albums?: Array<{
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                }>;
            };
            externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalSourceName: string;
            externalSourceId: string;
            libraryId?: string;
            externalKey: string;
            uniqueId: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            canonicalId?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'custom';
            persisted: boolean;
            duration: number;
            icon?: string;
            id: string;
            customShowId: string;
            index: number;
            program?: {
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id?: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
            };
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'redirect';
            persisted: boolean;
            duration: number;
            icon?: string;
            channel: string;
            channelNumber: number;
            channelName: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
        } | {
            type: 'flex';
            persisted: boolean;
            duration: number;
            icon?: string;
            start: number;
            stop: number;
            isPaused: boolean;
            timeRemaining?: number;
            title: string;
        }>;
    }>;
};

export type GetApiDebugHelpersBuildGuideResponse = GetApiDebugHelpersBuildGuideResponses[keyof GetApiDebugHelpersBuildGuideResponses];

export type GetApiDebugHelpersRandomFillerData = {
    body?: never;
    path?: never;
    query: {
        channelId: string;
        live: boolean;
        startTime?: number;
        endTime?: number;
        maxDuration: number;
    };
    url: '/api/debug/helpers/random_filler';
};

export type GetApiDebugHelpersRandomFillerResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugDbBackupData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/db/backup';
};

export type GetApiDebugDbBackupResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PostApiDebugPlexByProgramIdUpdateExternalIdsData = {
    body?: never;
    path: {
        programId: string;
    };
    query?: never;
    url: '/api/debug/plex/{programId}/update_external_ids';
};

export type PostApiDebugPlexByProgramIdUpdateExternalIdsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugChannelsReloadAllLineupsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/channels/reload_all_lineups';
};

export type GetApiDebugChannelsReloadAllLineupsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugSubprocessStatusData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/subprocess/status';
};

export type GetApiDebugSubprocessStatusResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugSubprocessRestartData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/debug/subprocess/restart';
};

export type GetApiDebugSubprocessRestartResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugMediaSourcesByMediaSourceIdScanData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: {
        pathFilter?: string;
    };
    url: '/api/debug/media_sources/{mediaSourceId}/scan';
};

export type GetApiDebugMediaSourcesByMediaSourceIdScanResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugMediaSourcesByMediaSourceIdLibrariesByLibraryIdScanData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        pathFilter?: string;
    };
    url: '/api/debug/media_sources/{mediaSourceId}/libraries/{libraryId}/scan';
};

export type GetApiDebugMediaSourcesByMediaSourceIdLibrariesByLibraryIdScanResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiDebugMediaSourcesByMediaSourceIdScanCollectionsData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: {
        pathFilter?: string;
    };
    url: '/api/debug/media_sources/{mediaSourceId}/scan-collections';
};

export type GetApiDebugMediaSourcesByMediaSourceIdScanCollectionsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiMediaSourcesData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/media-sources';
};

export type GetApiMediaSourcesErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type GetApiMediaSourcesError = GetApiMediaSourcesErrors[keyof GetApiMediaSourcesErrors];

export type GetApiMediaSourcesResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'plex';
        sendGuideUpdates: boolean;
        index: number;
        clientIdentifier?: string;
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'jellyfin';
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'emby';
    } | {
        id: string;
        name: string;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'local';
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        paths: Array<string>;
    }>;
};

export type GetApiMediaSourcesResponse = GetApiMediaSourcesResponses[keyof GetApiMediaSourcesResponses];

export type PostApiMediaSourcesData = {
    body: {
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'plex';
        sendGuideUpdates?: boolean;
        index?: number;
        clientIdentifier?: string;
    } | {
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'jellyfin';
    } | {
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'emby';
    } | {
        name: string;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'local';
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        paths: Array<string>;
    };
    path?: never;
    query?: never;
    url: '/api/media-sources';
};

export type PostApiMediaSourcesErrors = {
    /**
     * Default Response
     */
    400: string;
    /**
     * Default Response
     */
    500: string;
};

export type PostApiMediaSourcesError = PostApiMediaSourcesErrors[keyof PostApiMediaSourcesErrors];

export type PostApiMediaSourcesResponses = {
    /**
     * Default Response
     */
    201: {
        id: string;
    };
};

export type PostApiMediaSourcesResponse = PostApiMediaSourcesResponses[keyof PostApiMediaSourcesResponses];

export type GetApiMediaSourcesByMediaSourceIdData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: never;
    url: '/api/media-sources/{mediaSourceId}';
};

export type GetApiMediaSourcesByMediaSourceIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: string;
};

export type GetApiMediaSourcesByMediaSourceIdError = GetApiMediaSourcesByMediaSourceIdErrors[keyof GetApiMediaSourcesByMediaSourceIdErrors];

export type GetApiMediaSourcesByMediaSourceIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'plex';
        sendGuideUpdates: boolean;
        index: number;
        clientIdentifier?: string;
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'jellyfin';
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'emby';
    } | {
        id: string;
        name: string;
        libraries: Array<{
            id: string;
            name: string;
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            lastScannedAt?: number;
            externalKey: string;
            type: 'plex' | 'jellyfin' | 'emby' | 'local';
            enabled: boolean;
            isLocked: boolean;
        }>;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'local';
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        paths: Array<string>;
    };
};

export type GetApiMediaSourcesByMediaSourceIdResponse = GetApiMediaSourcesByMediaSourceIdResponses[keyof GetApiMediaSourcesByMediaSourceIdResponses];

export type GetApiMediaSourcesByIdLibrariesData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/media-sources/{id}/libraries';
};

export type GetApiMediaSourcesByIdLibrariesErrors = {
    /**
     * Default Response
     */
    400: unknown;
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: string;
};

export type GetApiMediaSourcesByIdLibrariesError = GetApiMediaSourcesByIdLibrariesErrors[keyof GetApiMediaSourcesByIdLibrariesErrors];

export type GetApiMediaSourcesByIdLibrariesResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        lastScannedAt?: number;
        externalKey: string;
        type: 'plex' | 'jellyfin' | 'emby' | 'local';
        enabled: boolean;
        isLocked: boolean;
        mediaSource?: {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'plex';
            sendGuideUpdates: boolean;
            index: number;
            clientIdentifier?: string;
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'jellyfin';
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'emby';
        } | {
            id: string;
            name: string;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'local';
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        };
    }>;
};

export type GetApiMediaSourcesByIdLibrariesResponse = GetApiMediaSourcesByIdLibrariesResponses[keyof GetApiMediaSourcesByIdLibrariesResponses];

export type PutApiMediaSourcesByIdLibrariesByLibraryIdData = {
    body: {
        enabled: boolean;
    };
    path: {
        id: string;
        libraryId: string;
    };
    query?: never;
    url: '/api/media-sources/{id}/libraries/{libraryId}';
};

export type PutApiMediaSourcesByIdLibrariesByLibraryIdErrors = {
    /**
     * Default Response
     */
    400: string;
    /**
     * Default Response
     */
    404: string;
    /**
     * Default Response
     */
    500: string;
};

export type PutApiMediaSourcesByIdLibrariesByLibraryIdError = PutApiMediaSourcesByIdLibrariesByLibraryIdErrors[keyof PutApiMediaSourcesByIdLibrariesByLibraryIdErrors];

export type PutApiMediaSourcesByIdLibrariesByLibraryIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        lastScannedAt?: number;
        externalKey: string;
        type: 'plex' | 'jellyfin' | 'emby' | 'local';
        enabled: boolean;
        isLocked: boolean;
        mediaSource?: {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'plex';
            sendGuideUpdates: boolean;
            index: number;
            clientIdentifier?: string;
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'jellyfin';
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'emby';
        } | {
            id: string;
            name: string;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'local';
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        };
    };
};

export type PutApiMediaSourcesByIdLibrariesByLibraryIdResponse = PutApiMediaSourcesByIdLibrariesByLibraryIdResponses[keyof PutApiMediaSourcesByIdLibrariesByLibraryIdResponses];

export type GetApiMediaLibrariesByLibraryIdData = {
    body?: never;
    path: {
        libraryId: string;
    };
    query?: never;
    url: '/api/media-libraries/{libraryId}';
};

export type GetApiMediaLibrariesByLibraryIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiMediaLibrariesByLibraryIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        lastScannedAt?: number;
        externalKey: string;
        type: 'plex' | 'jellyfin' | 'emby' | 'local';
        enabled: boolean;
        isLocked: boolean;
        mediaSource: {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            libraries: Array<{
                id: string;
                name: string;
                mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
                lastScannedAt?: number;
                externalKey: string;
                type: 'plex' | 'jellyfin' | 'emby' | 'local';
                enabled: boolean;
                isLocked: boolean;
            }>;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'plex';
            sendGuideUpdates: boolean;
            index: number;
            clientIdentifier?: string;
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            libraries: Array<{
                id: string;
                name: string;
                mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
                lastScannedAt?: number;
                externalKey: string;
                type: 'plex' | 'jellyfin' | 'emby' | 'local';
                enabled: boolean;
                isLocked: boolean;
            }>;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'jellyfin';
        } | {
            id: string;
            name: string;
            uri: string;
            accessToken: string;
            userId: string | null;
            username: string | null;
            libraries: Array<{
                id: string;
                name: string;
                mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
                lastScannedAt?: number;
                externalKey: string;
                type: 'plex' | 'jellyfin' | 'emby' | 'local';
                enabled: boolean;
                isLocked: boolean;
            }>;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'emby';
        } | {
            id: string;
            name: string;
            libraries: Array<{
                id: string;
                name: string;
                mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
                lastScannedAt?: number;
                externalKey: string;
                type: 'plex' | 'jellyfin' | 'emby' | 'local';
                enabled: boolean;
                isLocked: boolean;
            }>;
            pathReplacements: Array<{
                serverPath: string;
                localPath: string;
            }>;
            type: 'local';
            mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
            paths: Array<string>;
        };
    };
};

export type GetApiMediaLibrariesByLibraryIdResponse = GetApiMediaLibrariesByLibraryIdResponses[keyof GetApiMediaLibrariesByLibraryIdResponses];

export type GetApiMediaLibrariesByLibraryIdProgramsData = {
    body?: never;
    path: {
        libraryId: string;
    };
    query?: never;
    url: '/api/media-libraries/{libraryId}/programs';
};

export type GetApiMediaLibrariesByLibraryIdProgramsErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiMediaLibrariesByLibraryIdProgramsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'content';
        persisted: boolean;
        duration: number;
        icon?: string;
        id?: string;
        subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
        summary?: string;
        date?: string;
        year?: number;
        rating?: string;
        serverFileKey?: string;
        serverFilePath?: string;
        title: string;
        showId?: string;
        seasonId?: string;
        seasonNumber?: number;
        episodeNumber?: number;
        albumId?: string;
        artistId?: string;
        index?: number;
        parent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'season';
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'album';
        };
        grandparent?: {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'show';
            seasons?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        } | {
            id?: string;
            title?: string;
            index?: number;
            guids?: Array<string>;
            year?: number;
            externalKey?: string;
            externalIds: Array<{
                type: 'single';
                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                id: string;
            } | {
                type: 'multi';
                source: 'plex' | 'jellyfin' | 'emby';
                sourceId: string;
                id: string;
            }>;
            summary?: string;
            type: 'artist';
            albums?: Array<{
                id?: string;
                title?: string;
                index?: number;
                guids?: Array<string>;
                year?: number;
                externalKey?: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                summary?: string;
            }>;
        };
        externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        externalSourceName: string;
        externalSourceId: string;
        libraryId?: string;
        externalKey: string;
        uniqueId: string;
        externalIds: Array<{
            type: 'single';
            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
            id: string;
        } | {
            type: 'multi';
            source: 'plex' | 'jellyfin' | 'emby';
            sourceId: string;
            id: string;
        }>;
        canonicalId?: string;
    }>;
};

export type GetApiMediaLibrariesByLibraryIdProgramsResponse = GetApiMediaLibrariesByLibraryIdProgramsResponses[keyof GetApiMediaLibrariesByLibraryIdProgramsResponses];

export type GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: never;
    url: '/api/media-sources/{mediaSourceId}/{libraryId}/status';
};

export type GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusResponses = {
    /**
     * Default Response
     */
    200: {
        state: 'in_progress';
        startedAt: number;
        percentComplete: number;
    } | {
        state: 'not_scanning';
    } | {
        state: 'queued';
    };
};

export type GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusResponse = GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusResponses[keyof GetApiMediaSourcesByMediaSourceIdByLibraryIdStatusResponses];

export type PostApiMediaSourcesByIdLibrariesRefreshData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/media-sources/{id}/libraries/refresh';
};

export type PostApiMediaSourcesByIdLibrariesRefreshErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    501: unknown;
};

export type PostApiMediaSourcesByIdLibrariesRefreshResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PostApiMediaSourcesByIdScanData = {
    body?: never;
    path: {
        id: string;
        libraryId: string;
    };
    query?: {
        forceScan?: boolean | 'true' | 'false' | number;
    };
    url: '/api/media-sources/{id}/scan';
};

export type PostApiMediaSourcesByIdScanErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    501: unknown;
};

export type PostApiMediaSourcesByIdScanResponses = {
    /**
     * Default Response
     */
    202: unknown;
};

export type PostApiMediaSourcesByIdLibrariesByLibraryIdScanData = {
    body?: never;
    path: {
        id: string;
        libraryId: string;
    };
    query?: {
        forceScan?: boolean | 'true' | 'false' | number;
    };
    url: '/api/media-sources/{id}/libraries/{libraryId}/scan';
};

export type PostApiMediaSourcesByIdLibrariesByLibraryIdScanErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    501: unknown;
};

export type PostApiMediaSourcesByIdLibrariesByLibraryIdScanResponses = {
    /**
     * Default Response
     */
    202: unknown;
};

export type GetApiMediaSourcesByIdStatusData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/media-sources/{id}/status';
};

export type GetApiMediaSourcesByIdStatusErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type GetApiMediaSourcesByIdStatusResponses = {
    /**
     * Default Response
     */
    200: {
        healthy: boolean;
    };
};

export type GetApiMediaSourcesByIdStatusResponse = GetApiMediaSourcesByIdStatusResponses[keyof GetApiMediaSourcesByIdStatusResponses];

export type PostApiMediaSourcesForeignstatusData = {
    body: {
        name?: string;
        accessToken: string;
        uri: string;
        type: 'plex' | 'jellyfin' | 'emby';
        username?: string;
    } | {
        type: 'local';
        paths: Array<string>;
    };
    path?: never;
    query?: never;
    url: '/api/media-sources/foreignstatus';
};

export type PostApiMediaSourcesForeignstatusErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type PostApiMediaSourcesForeignstatusResponses = {
    /**
     * Default Response
     */
    200: {
        healthy: true;
    } | {
        healthy: false;
        status: 'unreachable' | 'auth' | 'timeout' | 'bad_response' | 'unknown';
    };
};

export type PostApiMediaSourcesForeignstatusResponse = PostApiMediaSourcesForeignstatusResponses[keyof PostApiMediaSourcesForeignstatusResponses];

export type DeleteApiMediaSourcesByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/media-sources/{id}';
};

export type DeleteApiMediaSourcesByIdErrors = {
    /**
     * Default Response
     */
    500: unknown;
};

export type DeleteApiMediaSourcesByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PutApiMediaSourcesByIdData = {
    body: {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'plex';
        sendGuideUpdates?: boolean;
        index: number;
        clientIdentifier?: string;
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'jellyfin';
    } | {
        id: string;
        name: string;
        uri: string;
        accessToken: string;
        userId: string | null;
        username: string | null;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'emby';
    } | {
        id: string;
        name: string;
        pathReplacements: Array<{
            serverPath: string;
            localPath: string;
        }>;
        type: 'local';
        mediaType: 'movies' | 'shows' | 'music_videos' | 'other_videos' | 'tracks';
        paths: Array<string>;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/media-sources/{id}';
};

export type PutApiMediaSourcesByIdErrors = {
    /**
     * Default Response
     */
    500: unknown;
};

export type PutApiMediaSourcesByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiFfmpegSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/ffmpeg-settings';
};

export type GetApiFfmpegSettingsErrors = {
    /**
     * Default Response
     */
    500: 'error';
};

export type GetApiFfmpegSettingsError = GetApiFfmpegSettingsErrors[keyof GetApiFfmpegSettingsErrors];

export type GetApiFfmpegSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        configVersion: number;
        ffmpegExecutablePath: string;
        ffprobeExecutablePath: string;
        enableLogging: boolean;
        enableFileLogging: boolean;
        logLevel: 'panic' | 'fatal' | 'error' | 'warning' | 'info' | 'verbose' | 'debug' | 'trace';
        languagePreferences: {
            preferences: Array<{
                iso6391: string;
                iso6392: string;
                displayName: string;
            }>;
        };
        transcodeDirectory?: string;
        scalingAlgorithm: 'bicubic' | 'fast_bilinear' | 'lanczos' | 'spline';
        deinterlaceFilter: 'none' | 'bwdif=0' | 'bwdif=1' | 'w3fdif' | 'yadif=0' | 'yadif=1';
        hlsDirectOutputFormat: 'mkv' | 'mpegts' | 'mp4';
        enableSubtitleExtraction: boolean;
    };
};

export type GetApiFfmpegSettingsResponse = GetApiFfmpegSettingsResponses[keyof GetApiFfmpegSettingsResponses];

export type PostApiFfmpegSettingsData = {
    body: {
        ffmpegPath: string;
    };
    path?: never;
    query?: never;
    url: '/api/ffmpeg-settings';
};

export type PostApiFfmpegSettingsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PutApiFfmpegSettingsData = {
    body?: {
        configVersion?: number;
        ffmpegExecutablePath?: string;
        ffprobeExecutablePath?: string;
        enableLogging?: boolean;
        enableFileLogging?: boolean;
        logLevel?: 'panic' | 'fatal' | 'error' | 'warning' | 'info' | 'verbose' | 'debug' | 'trace';
        languagePreferences?: {
            preferences: Array<{
                iso6391: string;
                iso6392: string;
                displayName: string;
            }>;
        };
        transcodeDirectory?: string;
        scalingAlgorithm?: 'bicubic' | 'fast_bilinear' | 'lanczos' | 'spline';
        deinterlaceFilter?: 'none' | 'bwdif=0' | 'bwdif=1' | 'w3fdif' | 'yadif=0' | 'yadif=1';
        hlsDirectOutputFormat?: 'mkv' | 'mpegts' | 'mp4';
        enableSubtitleExtraction?: boolean;
    };
    path?: never;
    query?: never;
    url: '/api/ffmpeg-settings';
};

export type PutApiFfmpegSettingsErrors = {
    /**
     * Default Response
     */
    400: string;
    /**
     * Default Response
     */
    500: string;
};

export type PutApiFfmpegSettingsError = PutApiFfmpegSettingsErrors[keyof PutApiFfmpegSettingsErrors];

export type PutApiFfmpegSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        configVersion: number;
        ffmpegExecutablePath: string;
        ffprobeExecutablePath: string;
        enableLogging: boolean;
        enableFileLogging: boolean;
        logLevel: 'panic' | 'fatal' | 'error' | 'warning' | 'info' | 'verbose' | 'debug' | 'trace';
        languagePreferences: {
            preferences: Array<{
                iso6391: string;
                iso6392: string;
                displayName: string;
            }>;
        };
        transcodeDirectory?: string;
        scalingAlgorithm: 'bicubic' | 'fast_bilinear' | 'lanczos' | 'spline';
        deinterlaceFilter: 'none' | 'bwdif=0' | 'bwdif=1' | 'w3fdif' | 'yadif=0' | 'yadif=1';
        hlsDirectOutputFormat: 'mkv' | 'mpegts' | 'mp4';
        enableSubtitleExtraction: boolean;
    };
};

export type PutApiFfmpegSettingsResponse = PutApiFfmpegSettingsResponses[keyof PutApiFfmpegSettingsResponses];

export type GetApiTranscodeConfigsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/transcode_configs';
};

export type GetApiTranscodeConfigsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    }>;
};

export type GetApiTranscodeConfigsResponse = GetApiTranscodeConfigsResponses[keyof GetApiTranscodeConfigsResponses];

export type PostApiTranscodeConfigsData = {
    body: {
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent?: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder?: boolean;
        disableHardwareEncoding?: boolean;
        disableHardwareFilters?: boolean;
    };
    path?: never;
    query?: never;
    url: '/api/transcode_configs';
};

export type PostApiTranscodeConfigsResponses = {
    /**
     * Default Response
     */
    201: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    };
};

export type PostApiTranscodeConfigsResponse = PostApiTranscodeConfigsResponses[keyof PostApiTranscodeConfigsResponses];

export type DeleteApiTranscodeConfigsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/transcode_configs/{id}';
};

export type DeleteApiTranscodeConfigsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type DeleteApiTranscodeConfigsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiTranscodeConfigsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/transcode_configs/{id}';
};

export type GetApiTranscodeConfigsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiTranscodeConfigsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    };
};

export type GetApiTranscodeConfigsByIdResponse = GetApiTranscodeConfigsByIdResponses[keyof GetApiTranscodeConfigsByIdResponses];

export type PutApiTranscodeConfigsByIdData = {
    body: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent?: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder?: boolean;
        disableHardwareEncoding?: boolean;
        disableHardwareFilters?: boolean;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/transcode_configs/{id}';
};

export type PutApiTranscodeConfigsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    };
};

export type PutApiTranscodeConfigsByIdResponse = PutApiTranscodeConfigsByIdResponses[keyof PutApiTranscodeConfigsByIdResponses];

export type PostApiTranscodeConfigsByIdCopyData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/transcode_configs/{id}/copy';
};

export type PostApiTranscodeConfigsByIdCopyErrors = {
    /**
     * Default Response
     */
    404: unknown;
    /**
     * Default Response
     */
    500: unknown;
};

export type PostApiTranscodeConfigsByIdCopyResponses = {
    /**
     * Default Response
     */
    200: {
        id: string;
        name: string;
        threadCount: number;
        hardwareAccelerationMode: 'none' | 'cuda' | 'vaapi' | 'qsv' | 'videotoolbox';
        vaapiDriver: 'system' | 'ihd' | 'i965' | 'radeonsi' | 'nouveau';
        vaapiDevice: string | null;
        resolution: {
            widthPx: number;
            heightPx: number;
        };
        videoFormat: 'h264' | 'hevc' | 'mpeg2video';
        videoProfile: string | null;
        videoPreset: string | null;
        videoBitDepth: (8 | 10) | null;
        videoBitRate: number;
        videoBufferSize: number;
        audioChannels: number;
        audioFormat: 'aac' | 'ac3' | 'copy' | 'mp3';
        audioBitRate: number;
        audioBufferSize: number;
        audioSampleRate: number;
        audioVolumePercent: number;
        normalizeFrameRate: boolean;
        deinterlaceVideo: boolean;
        disableChannelOverlay: boolean;
        errorScreen: 'static' | 'pic' | 'blank' | 'testsrc' | 'text' | 'kill';
        errorScreenAudio: 'silent' | 'sine' | 'whitenoise';
        isDefault: boolean;
        disableHardwareDecoder: boolean;
        disableHardwareEncoding: boolean;
        disableHardwareFilters: boolean;
    };
};

export type PostApiTranscodeConfigsByIdCopyResponse = PostApiTranscodeConfigsByIdCopyResponses[keyof PostApiTranscodeConfigsByIdCopyResponses];

export type GetApiPlexSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/plex-settings';
};

export type GetApiPlexSettingsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type GetApiPlexSettingsError = GetApiPlexSettingsErrors[keyof GetApiPlexSettingsErrors];

export type GetApiPlexSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        streamPath: 'network' | 'direct';
        updatePlayStatus: boolean;
        pathReplace: string;
        pathReplaceWith: string;
    };
};

export type GetApiPlexSettingsResponse = GetApiPlexSettingsResponses[keyof GetApiPlexSettingsResponses];

export type PostApiPlexSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/plex-settings';
};

export type PostApiPlexSettingsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type PostApiPlexSettingsError = PostApiPlexSettingsErrors[keyof PostApiPlexSettingsErrors];

export type PostApiPlexSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        streamPath: 'network' | 'direct';
        updatePlayStatus: boolean;
        pathReplace: string;
        pathReplaceWith: string;
    };
};

export type PostApiPlexSettingsResponse = PostApiPlexSettingsResponses[keyof PostApiPlexSettingsResponses];

export type PutApiPlexSettingsData = {
    body?: {
        streamPath?: 'network' | 'direct';
        updatePlayStatus?: boolean;
        pathReplace?: string;
        pathReplaceWith?: string;
    };
    path?: never;
    query?: never;
    url: '/api/plex-settings';
};

export type PutApiPlexSettingsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type PutApiPlexSettingsError = PutApiPlexSettingsErrors[keyof PutApiPlexSettingsErrors];

export type PutApiPlexSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        streamPath: 'network' | 'direct';
        updatePlayStatus: boolean;
        pathReplace: string;
        pathReplaceWith: string;
    };
};

export type PutApiPlexSettingsResponse = PutApiPlexSettingsResponses[keyof PutApiPlexSettingsResponses];

export type GetApiXmltvSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv-settings';
};

export type GetApiXmltvSettingsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type GetApiXmltvSettingsError = GetApiXmltvSettingsErrors[keyof GetApiXmltvSettingsErrors];

export type GetApiXmltvSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        programmingHours: number;
        refreshHours: number;
        outputPath: string;
        enableImageCache: boolean;
        useShowPoster: boolean;
    };
};

export type GetApiXmltvSettingsResponse = GetApiXmltvSettingsResponses[keyof GetApiXmltvSettingsResponses];

export type PostApiXmltvSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv-settings';
};

export type PostApiXmltvSettingsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type PostApiXmltvSettingsError = PostApiXmltvSettingsErrors[keyof PostApiXmltvSettingsErrors];

export type PostApiXmltvSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        programmingHours: number;
        refreshHours: number;
        outputPath: string;
        enableImageCache: boolean;
        useShowPoster: boolean;
    };
};

export type PostApiXmltvSettingsResponse = PostApiXmltvSettingsResponses[keyof PostApiXmltvSettingsResponses];

export type PutApiXmltvSettingsData = {
    body?: {
        programmingHours?: number;
        refreshHours?: number;
        outputPath?: string;
        enableImageCache?: boolean;
        useShowPoster?: boolean;
    };
    path?: never;
    query?: never;
    url: '/api/xmltv-settings';
};

export type PutApiXmltvSettingsErrors = {
    /**
     * Default Response
     */
    500: {
        message: string;
    };
};

export type PutApiXmltvSettingsError = PutApiXmltvSettingsErrors[keyof PutApiXmltvSettingsErrors];

export type PutApiXmltvSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        programmingHours: number;
        refreshHours: number;
        outputPath: string;
        enableImageCache: boolean;
        useShowPoster: boolean;
    };
};

export type PutApiXmltvSettingsResponse = PutApiXmltvSettingsResponses[keyof PutApiXmltvSettingsResponses];

export type GetApiHdhrSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/hdhr-settings';
};

export type GetApiHdhrSettingsErrors = {
    /**
     * Default Response
     */
    500: {
        message: string;
    };
};

export type GetApiHdhrSettingsError = GetApiHdhrSettingsErrors[keyof GetApiHdhrSettingsErrors];

export type GetApiHdhrSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        autoDiscoveryEnabled: boolean;
        tunerCount: number;
    };
};

export type GetApiHdhrSettingsResponse = GetApiHdhrSettingsResponses[keyof GetApiHdhrSettingsResponses];

export type PostApiHdhrSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/hdhr-settings';
};

export type PostApiHdhrSettingsErrors = {
    /**
     * Default Response
     */
    500: {
        message: string;
    };
};

export type PostApiHdhrSettingsError = PostApiHdhrSettingsErrors[keyof PostApiHdhrSettingsErrors];

export type PostApiHdhrSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        autoDiscoveryEnabled: boolean;
        tunerCount: number;
    };
};

export type PostApiHdhrSettingsResponse = PostApiHdhrSettingsResponses[keyof PostApiHdhrSettingsResponses];

export type PutApiHdhrSettingsData = {
    body?: {
        autoDiscoveryEnabled?: boolean;
        tunerCount?: number;
    };
    path?: never;
    query?: never;
    url: '/api/hdhr-settings';
};

export type PutApiHdhrSettingsErrors = {
    /**
     * Default Response
     */
    500: {
        message: string;
    };
};

export type PutApiHdhrSettingsError = PutApiHdhrSettingsErrors[keyof PutApiHdhrSettingsErrors];

export type PutApiHdhrSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        autoDiscoveryEnabled: boolean;
        tunerCount: number;
    };
};

export type PutApiHdhrSettingsResponse = PutApiHdhrSettingsResponses[keyof PutApiHdhrSettingsResponses];

export type GetApiSystemHealthData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/health';
};

export type GetApiSystemHealthResponses = {
    /**
     * Default Response
     */
    200: {
        [key: string]: {
            type: 'healthy';
        } | {
            type: 'info' | 'warning' | 'error';
            context: string;
        };
    };
};

export type GetApiSystemHealthResponse = GetApiSystemHealthResponses[keyof GetApiSystemHealthResponses];

export type GetApiSystemSettingsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/settings';
};

export type GetApiSystemSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        backup: {
            configurations: Array<{
                enabled: boolean;
                schedule: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs: number;
                };
                outputs: Array<{
                    type: 'file';
                    outputPath: string;
                    archiveFormat: 'zip' | 'tar';
                    gzip?: boolean;
                    tempDir?: string;
                    maxBackups: number;
                }>;
            }>;
        };
        logging: {
            logLevel: 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'http_out' | 'trace';
            logsDirectory: string;
            useEnvVarLevel: boolean;
            logRollConfig: {
                enabled: boolean;
                maxFileSizeBytes?: number;
                rolledFileLimit: number;
                schedule?: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs: number;
                };
            };
            environmentLogLevel?: 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'http_out' | 'trace';
        };
        cache?: {
            enablePlexRequestCache: boolean;
        };
        server: {
            port: number;
            searchSettings: {
                maxIndexingMemory?: number;
                snapshotIntervalHours: number;
            };
        };
        dataDirectory: string;
        searchServerAddress: string;
    };
};

export type GetApiSystemSettingsResponse = GetApiSystemSettingsResponses[keyof GetApiSystemSettingsResponses];

export type PutApiSystemSettingsData = {
    body?: {
        logging?: {
            logLevel?: 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'http_out' | 'trace';
            useEnvVarLevel?: boolean;
            logRollConfig?: {
                enabled?: boolean;
                maxFileSizeBytes?: number;
                rolledFileLimit: number;
                schedule?: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs?: number;
                };
            };
        };
        backup?: {
            configurations: Array<{
                enabled?: boolean;
                schedule?: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs?: number;
                };
                outputs: Array<{
                    type: 'file';
                    outputPath: string;
                    archiveFormat?: 'zip' | 'tar';
                    gzip?: boolean;
                    tempDir?: string;
                    maxBackups?: number;
                }>;
            }>;
        };
        cache?: {
            enablePlexRequestCache?: boolean;
        };
        server?: {
            port?: number;
            searchSettings: {
                maxIndexingMemory?: number;
                snapshotIntervalHours?: number;
            };
        };
    };
    path?: never;
    query?: never;
    url: '/api/system/settings';
};

export type PutApiSystemSettingsResponses = {
    /**
     * Default Response
     */
    200: {
        backup: {
            configurations: Array<{
                enabled: boolean;
                schedule: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs: number;
                };
                outputs: Array<{
                    type: 'file';
                    outputPath: string;
                    archiveFormat: 'zip' | 'tar';
                    gzip?: boolean;
                    tempDir?: string;
                    maxBackups: number;
                }>;
            }>;
        };
        logging: {
            logLevel: 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'http_out' | 'trace';
            logsDirectory: string;
            useEnvVarLevel: boolean;
            logRollConfig: {
                enabled: boolean;
                maxFileSizeBytes?: number;
                rolledFileLimit: number;
                schedule?: {
                    type: 'cron';
                    cron: string;
                } | {
                    type: 'every';
                    increment: number;
                    unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                    offsetMs: number;
                };
            };
            environmentLogLevel?: 'silent' | 'fatal' | 'error' | 'warn' | 'info' | 'http' | 'debug' | 'http_out' | 'trace';
        };
        cache?: {
            enablePlexRequestCache: boolean;
        };
        server: {
            port: number;
            searchSettings: {
                maxIndexingMemory?: number;
                snapshotIntervalHours: number;
            };
        };
        dataDirectory: string;
        searchServerAddress: string;
    };
};

export type PutApiSystemSettingsResponse = PutApiSystemSettingsResponses[keyof PutApiSystemSettingsResponses];

export type GetApiSystemStateData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/state';
};

export type GetApiSystemStateResponses = {
    /**
     * Default Response
     */
    200: {
        isDocker: boolean;
        isPodman: boolean;
        isInContainer: boolean;
    };
};

export type GetApiSystemStateResponse = GetApiSystemStateResponses[keyof GetApiSystemStateResponses];

export type GetApiSystemMigrationStateData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/migration-state';
};

export type GetApiSystemMigrationStateResponses = {
    /**
     * Default Response
     */
    200: {
        /**
         * Whether a legacy migration was performed
         */
        legacyMigration: boolean;
        isFreshSettings?: boolean;
        hasMigratedTo1_0: boolean;
    };
};

export type GetApiSystemMigrationStateResponse = GetApiSystemMigrationStateResponses[keyof GetApiSystemMigrationStateResponses];

export type PostApiSystemFixersByFixerIdRunData = {
    body?: never;
    path: {
        fixerId: string;
    };
    query?: never;
    url: '/api/system/fixers/{fixerId}/run';
};

export type PostApiSystemFixersByFixerIdRunResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PutApiSystemSettingsBackupData = {
    body: {
        configurations: Array<{
            enabled?: boolean;
            schedule?: {
                type: 'cron';
                cron: string;
            } | {
                type: 'every';
                increment: number;
                unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                offsetMs?: number;
            };
            outputs: Array<{
                type: 'file';
                outputPath: string;
                archiveFormat?: 'zip' | 'tar';
                gzip?: boolean;
                tempDir?: string;
                maxBackups?: number;
            }>;
        }>;
    };
    path?: never;
    query?: never;
    url: '/api/system/settings/backup';
};

export type PutApiSystemSettingsBackupResponses = {
    /**
     * Default Response
     */
    200: {
        configurations: Array<{
            enabled: boolean;
            schedule: {
                type: 'cron';
                cron: string;
            } | {
                type: 'every';
                increment: number;
                unit: 'second' | 'minute' | 'hour' | 'day' | 'week';
                offsetMs: number;
            };
            outputs: Array<{
                type: 'file';
                outputPath: string;
                archiveFormat: 'zip' | 'tar';
                gzip?: boolean;
                tempDir?: string;
                maxBackups: number;
            }>;
        }>;
    };
};

export type PutApiSystemSettingsBackupResponse = PutApiSystemSettingsBackupResponses[keyof PutApiSystemSettingsBackupResponses];

export type GetApiSystemDebugNvidiaData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/debug/nvidia';
};

export type GetApiSystemDebugNvidiaResponses = {
    /**
     * Default Response
     */
    200: string;
};

export type GetApiSystemDebugNvidiaResponse = GetApiSystemDebugNvidiaResponses[keyof GetApiSystemDebugNvidiaResponses];

export type GetApiSystemDebugVaapiData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/debug/vaapi';
};

export type GetApiSystemDebugVaapiResponses = {
    /**
     * Default Response
     */
    200: string;
};

export type GetApiSystemDebugVaapiResponse = GetApiSystemDebugVaapiResponses[keyof GetApiSystemDebugVaapiResponses];

export type GetApiSystemDebugLogsStreamData = {
    body?: never;
    path?: never;
    query?: {
        pretty?: string;
    };
    url: '/api/system/debug/logs/stream';
};

export type GetApiSystemDebugLogsStreamResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiSystemDebugLogsData = {
    body?: never;
    path?: never;
    query?: {
        download?: boolean | 'true' | 'false' | number;
        lineLimit?: number;
        pretty?: string;
    };
    url: '/api/system/debug/logs';
};

export type GetApiSystemDebugLogsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiSystemDebugEnvData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/system/debug/env';
};

export type GetApiSystemDebugEnvResponses = {
    /**
     * Default Response
     */
    200: {
        [key: string]: string;
    };
};

export type GetApiSystemDebugEnvResponse = GetApiSystemDebugEnvResponses[keyof GetApiSystemDebugEnvResponses];

export type GetApiGuideStatusData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/guide/status';
};

export type GetApiGuideStatusResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiGuideDebugData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/guide/debug';
};

export type GetApiGuideDebugResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiGuideChannelsData = {
    body?: never;
    path?: never;
    query: {
        dateFrom: unknown;
        dateTo: unknown;
    };
    url: '/api/guide/channels';
};

export type GetApiGuideChannelsErrors = {
    /**
     * Default Response
     */
    400: string;
};

export type GetApiGuideChannelsError = GetApiGuideChannelsErrors[keyof GetApiGuideChannelsErrors];

export type GetApiGuideChannelsResponses = {
    /**
     * Default Response
     */
    200: {
        [key: string]: {
            icon?: {
                path: string;
                width: number;
                duration: number;
                position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
            };
            name: string;
            number: number;
            id: string;
            programs: Array<{
                type: 'content';
                persisted: boolean;
                duration: number;
                icon?: string;
                id: string;
                subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                summary?: string;
                date?: string;
                year?: number;
                rating?: string;
                serverFileKey?: string;
                serverFilePath?: string;
                title: string;
                showId?: string;
                seasonId?: string;
                seasonNumber?: number;
                episodeNumber?: number;
                albumId?: string;
                artistId?: string;
                index?: number;
                parent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'season';
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'album';
                };
                grandparent?: {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'show';
                    seasons?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                } | {
                    id?: string;
                    title?: string;
                    index?: number;
                    guids?: Array<string>;
                    year?: number;
                    externalKey?: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    summary?: string;
                    type: 'artist';
                    albums?: Array<{
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                    }>;
                };
                externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalSourceName: string;
                externalSourceId: string;
                libraryId?: string;
                externalKey: string;
                uniqueId: string;
                externalIds: Array<{
                    type: 'single';
                    source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                    id: string;
                } | {
                    type: 'multi';
                    source: 'plex' | 'jellyfin' | 'emby';
                    sourceId: string;
                    id: string;
                }>;
                canonicalId?: string;
                start: number;
                stop: number;
                isPaused: boolean;
                timeRemaining?: number;
            } | {
                type: 'custom';
                persisted: boolean;
                duration: number;
                icon?: string;
                id: string;
                customShowId: string;
                index: number;
                program?: {
                    type: 'content';
                    persisted: boolean;
                    duration: number;
                    icon?: string;
                    id?: string;
                    subtype: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video';
                    summary?: string;
                    date?: string;
                    year?: number;
                    rating?: string;
                    serverFileKey?: string;
                    serverFilePath?: string;
                    title: string;
                    showId?: string;
                    seasonId?: string;
                    seasonNumber?: number;
                    episodeNumber?: number;
                    albumId?: string;
                    artistId?: string;
                    index?: number;
                    parent?: {
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                        type: 'season';
                    } | {
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                        type: 'album';
                    };
                    grandparent?: {
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                        type: 'show';
                        seasons?: Array<{
                            id?: string;
                            title?: string;
                            index?: number;
                            guids?: Array<string>;
                            year?: number;
                            externalKey?: string;
                            externalIds: Array<{
                                type: 'single';
                                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                                id: string;
                            } | {
                                type: 'multi';
                                source: 'plex' | 'jellyfin' | 'emby';
                                sourceId: string;
                                id: string;
                            }>;
                            summary?: string;
                        }>;
                    } | {
                        id?: string;
                        title?: string;
                        index?: number;
                        guids?: Array<string>;
                        year?: number;
                        externalKey?: string;
                        externalIds: Array<{
                            type: 'single';
                            source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                            id: string;
                        } | {
                            type: 'multi';
                            source: 'plex' | 'jellyfin' | 'emby';
                            sourceId: string;
                            id: string;
                        }>;
                        summary?: string;
                        type: 'artist';
                        albums?: Array<{
                            id?: string;
                            title?: string;
                            index?: number;
                            guids?: Array<string>;
                            year?: number;
                            externalKey?: string;
                            externalIds: Array<{
                                type: 'single';
                                source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                                id: string;
                            } | {
                                type: 'multi';
                                source: 'plex' | 'jellyfin' | 'emby';
                                sourceId: string;
                                id: string;
                            }>;
                            summary?: string;
                        }>;
                    };
                    externalSourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalSourceName: string;
                    externalSourceId: string;
                    libraryId?: string;
                    externalKey: string;
                    uniqueId: string;
                    externalIds: Array<{
                        type: 'single';
                        source: 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb';
                        id: string;
                    } | {
                        type: 'multi';
                        source: 'plex' | 'jellyfin' | 'emby';
                        sourceId: string;
                        id: string;
                    }>;
                    canonicalId?: string;
                };
                start: number;
                stop: number;
                isPaused: boolean;
                timeRemaining?: number;
            } | {
                type: 'redirect';
                persisted: boolean;
                duration: number;
                icon?: string;
                channel: string;
                channelNumber: number;
                channelName: string;
                start: number;
                stop: number;
                isPaused: boolean;
                timeRemaining?: number;
            } | {
                type: 'flex';
                persisted: boolean;
                duration: number;
                icon?: string;
                start: number;
                stop: number;
                isPaused: boolean;
                timeRemaining?: number;
                title: string;
            }>;
        };
    };
};

export type GetApiGuideChannelsResponse = GetApiGuideChannelsResponses[keyof GetApiGuideChannelsResponses];

export type GetApiGuideChannelsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query: {
        dateFrom: string;
        dateTo: string;
    };
    url: '/api/guide/channels/{id}';
};

export type GetApiGuideChannelsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiPlexByMediaSourceIdSearchData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query: {
        key: string;
        searchParam?: string;
        offset?: number;
        limit?: number;
        parentType?: string;
    };
    url: '/api/plex/{mediaSourceId}/search';
};

export type GetApiPlexByMediaSourceIdSearchErrors = {
    /**
     * Default Response
     */
    400: string;
};

export type GetApiPlexByMediaSourceIdSearchError = GetApiPlexByMediaSourceIdSearchErrors[keyof GetApiPlexByMediaSourceIdSearchErrors];

export type GetApiPlexByMediaSourceIdSearchResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<{
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | Season | Show | MusicTrack | MusicAlbum | MusicArtist | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }>;
        size: number;
        offset?: number;
    };
};

export type GetApiPlexByMediaSourceIdSearchResponse = GetApiPlexByMediaSourceIdSearchResponses[keyof GetApiPlexByMediaSourceIdSearchResponses];

export type GetApiPlexByMediaSourceIdLibrariesData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: never;
    url: '/api/plex/{mediaSourceId}/libraries';
};

export type GetApiPlexByMediaSourceIdLibrariesResponses = {
    /**
     * Default Response
     */
    200: Array<{
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        type: 'library';
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        libraryId?: string;
    }>;
};

export type GetApiPlexByMediaSourceIdLibrariesResponse = GetApiPlexByMediaSourceIdLibrariesResponses[keyof GetApiPlexByMediaSourceIdLibrariesResponses];

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdCollectionsData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        offset?: number;
        limit?: number;
    };
    url: '/api/plex/{mediaSourceId}/libraries/{libraryId}/collections';
};

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdCollectionsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<{
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'collection';
        }>;
        size: number;
        offset?: number;
    };
};

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdCollectionsResponse = GetApiPlexByMediaSourceIdLibrariesByLibraryIdCollectionsResponses[keyof GetApiPlexByMediaSourceIdLibrariesByLibraryIdCollectionsResponses];

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdPlaylistsData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        offset?: number;
        limit?: number;
    };
    url: '/api/plex/{mediaSourceId}/libraries/{libraryId}/playlists';
};

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdPlaylistsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<{
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        }>;
        size: number;
        offset?: number;
    };
};

export type GetApiPlexByMediaSourceIdLibrariesByLibraryIdPlaylistsResponse = GetApiPlexByMediaSourceIdLibrariesByLibraryIdPlaylistsResponses[keyof GetApiPlexByMediaSourceIdLibrariesByLibraryIdPlaylistsResponses];

export type GetApiPlexByMediaSourceIdPlaylistsData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: {
        offset?: number;
        limit?: number;
    };
    url: '/api/plex/{mediaSourceId}/playlists';
};

export type GetApiPlexByMediaSourceIdPlaylistsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<{
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        }>;
        size: number;
        offset?: number;
    };
};

export type GetApiPlexByMediaSourceIdPlaylistsResponse = GetApiPlexByMediaSourceIdPlaylistsResponses[keyof GetApiPlexByMediaSourceIdPlaylistsResponses];

export type GetApiPlexByMediaSourceIdFiltersData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query: {
        key: string;
    };
    url: '/api/plex/{mediaSourceId}/filters';
};

export type GetApiPlexByMediaSourceIdFiltersResponses = {
    /**
     * Default Response
     */
    200: {
        Meta: {
            Type: Array<{
                key: string;
                type: 'movie' | 'show' | 'artist' | 'photo' | 'track' | 'episode' | 'season' | 'album' | 'folder';
                title: string;
                active: boolean;
                Filter?: Array<{
                    filter: string;
                    filterType: string;
                    key: string;
                    title: string;
                    type: string;
                    advanced?: boolean;
                }>;
                Sort?: Array<{
                    active?: boolean;
                    activeDirection?: string;
                    default?: string;
                    defaultDirection: string;
                    descKey: string;
                    firstCharacterKey?: string;
                    key: string;
                    title: string;
                }>;
                Field?: Array<{
                    key: string;
                    title: string;
                    type: string;
                }>;
            }>;
            FieldType: Array<{
                type: string;
                Operator: Array<{
                    key: string;
                    title: string;
                }>;
            }>;
        };
    };
};

export type GetApiPlexByMediaSourceIdFiltersResponse = GetApiPlexByMediaSourceIdFiltersResponses[keyof GetApiPlexByMediaSourceIdFiltersResponses];

export type GetApiPlexByMediaSourceIdTagsData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query: {
        libraryKey: string;
        itemKey: string;
    };
    url: '/api/plex/{mediaSourceId}/tags';
};

export type GetApiPlexByMediaSourceIdTagsResponses = {
    /**
     * Default Response
     */
    200: {
        size: number;
        Directory: Array<{
            fastKey?: string;
            thumb?: string;
            key: string;
            title: string;
        }>;
    };
};

export type GetApiPlexByMediaSourceIdTagsResponse = GetApiPlexByMediaSourceIdTagsResponses[keyof GetApiPlexByMediaSourceIdTagsResponses];

export type GetApiPlexByMediaSourceIdItemsByItemIdChildrenData = {
    body?: never;
    path: {
        mediaSourceId: string;
        itemId: string;
    };
    query: {
        parentType: 'item' | 'collection' | 'playlist';
    };
    url: '/api/plex/{mediaSourceId}/items/{itemId}/children';
};

export type GetApiPlexByMediaSourceIdItemsByItemIdChildrenResponses = {
    /**
     * Default Response
     */
    200: Array<(({
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'movie';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
        summary: string | null;
        plot: string | null;
        tagline: string | null;
        rating: string | null;
    } | Episode | MusicTrack | {
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'other_video';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
    } | {
        uuid: string;
        canonicalId: string;
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        /**
         * Unique identifier for this item in the external media source
         */
        externalId: string;
        type: 'music_video';
        identifiers: Array<{
            id: string;
            sourceId?: string;
            type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
        }>;
        title: string;
        sortTitle: string;
        tags: Array<string>;
        mediaSourceId: string;
        libraryId: string;
        originalTitle: string | null;
        year: number | null;
        /**
         * Epoch timestamp
         */
        releaseDate: number | null;
        releaseDateString: string | null;
        mediaItem?: {
            streams: Array<{
                index: number;
                codec: string;
                profile?: string | null;
                streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                title?: string | null;
                hasAttachedPicture?: boolean | null;
                fileName?: string | null;
                mimeType?: string | null;
                frameRate?: (string | number) | null;
                pixelFormat?: string | null;
                bitDepth?: number | null;
                colorRange?: string | null;
                colorSpace?: string | null;
                colorTransfer?: string | null;
                colorPrimaries?: string | null;
                channels?: number | null;
                sdh?: boolean | null;
                languageCodeISO6392?: string | null;
                selected?: boolean | null;
                default?: boolean | null;
                forced?: boolean | null;
            }>;
            duration: number;
            sampleAspectRatio?: string | null;
            displayAspectRatio?: string | null;
            frameRate?: (number | string) | null;
            resolution?: {
                widthPx: number;
                heightPx: number;
            } | null;
            locations: Array<{
                path: string;
                type: 'local';
            } | {
                path: string;
                type: 'remote';
                sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                externalKey: string;
            }>;
            chapters?: Array<{
                index: number;
                startTime: number;
                endTime: number;
                title?: string | null;
                chapterType: 'chapter' | 'intro' | 'outro';
            }> | null;
            scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
        };
        actors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            order?: number | null;
            role?: string | null;
            thumb?: string | null;
        }>;
        writers?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        directors?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
            thumb?: string | null;
        }>;
        genres?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        studios?: Array<{
            uuid?: string;
            name: string;
            externalInfo?: {
                source: 'plex' | 'jellyfin' | 'emby' | 'local';
                id: string;
            } | null;
        }>;
        duration: number;
        externalSubtitles?: Array<{
            subtitleType: 'embedded' | 'sidecar';
            title?: string | null;
            streamIndex?: number | null;
            codec: string;
            default?: boolean | null;
            forced?: boolean | null;
            sdh?: boolean | null;
            language: string;
            path?: string | null;
        }> | null;
        artwork: Array<{
            id?: string;
            type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
            path?: string | null;
        }>;
        state: 'ok' | 'missing';
    }) | (Show | Season | MusicArtist | MusicAlbum)) | ({
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        mediaSourceId: string;
        libraryId: string;
        type: 'folder';
    } | {
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        mediaSourceId: string;
        libraryId: string;
        type: 'collection';
    } | {
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        mediaSourceId: string;
        libraryId: string;
        type: 'playlist';
    })>;
};

export type GetApiPlexByMediaSourceIdItemsByItemIdChildrenResponse = GetApiPlexByMediaSourceIdItemsByItemIdChildrenResponses[keyof GetApiPlexByMediaSourceIdItemsByItemIdChildrenResponses];

export type JellyfinLoginData = {
    body: {
        url: string;
        username: string;
        password: string;
    };
    path?: never;
    query?: never;
    url: '/api/jellyfin/login';
};

export type JellyfinLoginResponses = {
    /**
     * Default Response
     */
    200: {
        accessToken?: string;
        userId?: string;
    };
};

export type JellyfinLoginResponse = JellyfinLoginResponses[keyof JellyfinLoginResponses];

export type GetJellyfinLibrariesData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: never;
    url: '/api/jellyfin/{mediaSourceId}/user_libraries';
};

export type GetJellyfinLibrariesResponses = {
    /**
     * Default Response
     */
    200: Array<{
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        type: 'library';
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        libraryId?: string;
    }>;
};

export type GetJellyfinLibrariesResponse = GetJellyfinLibrariesResponses[keyof GetJellyfinLibrariesResponses];

export type GetJellyfinLibraryGenresData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        includeItemTypes?: string;
    };
    url: '/api/jellyfin/{mediaSourceId}/libraries/{libraryId}/genres';
};

export type GetJellyfinLibraryGenresResponses = {
    /**
     * Default Response
     */
    200: {
        Items: Array<{
            Name?: string | null;
            OriginalTitle?: string | null;
            ServerId?: string | null;
            Id: string;
            Etag?: string | null;
            SourceType?: string | null;
            PlaylistItemId?: string | null;
            DateCreated?: string | null;
            DateLastMediaAdded?: string | null;
            ExtraType?: ('Unknown' | 'Clip' | 'Trailer' | 'BehindTheScenes' | 'DeletedScene' | 'Interview' | 'Scene' | 'Sample' | 'ThemeSong' | 'ThemeVideo' | 'Featurette' | 'Short') | null;
            AirsBeforeSeasonNumber?: number | null;
            AirsAfterSeasonNumber?: number | null;
            AirsBeforeEpisodeNumber?: number | null;
            CanDelete?: boolean | null;
            CanDownload?: boolean | null;
            HasLyrics?: boolean | null;
            HasSubtitles?: boolean | null;
            PreferredMetadataLanguage?: string | null;
            PreferredMetadataCountryCode?: string | null;
            Container?: string | null;
            SortName?: string | null;
            ForcedSortName?: string | null;
            Video3DFormat?: ('HalfSideBySide' | 'FullSideBySide' | 'FullTopAndBottom' | 'HalfTopAndBottom' | 'MVC') | null;
            PremiereDate?: string | null;
            ExternalUrls?: Array<{
                Name?: string | null;
                Url?: string | null;
            }> | null;
            MediaSources?: Array<{
                Protocol?: 'File' | 'Http' | 'Rtmp' | 'Rtsp' | 'Udp' | 'Rtp' | 'Ftp';
                Id?: string | null;
                Path?: string | null;
                EncoderPath?: string | null;
                EncoderProtocol?: ('File' | 'Http' | 'Rtmp' | 'Rtsp' | 'Udp' | 'Rtp' | 'Ftp') | null;
                Type?: 'Default' | 'Grouping' | 'Placeholder';
                Container?: string | null;
                Size?: number | null;
                Name?: string | null;
                IsRemote?: boolean;
                ETag?: string | null;
                RunTimeTicks?: number | null;
                ReadAtNativeFramerate?: boolean;
                IgnoreDts?: boolean;
                IgnoreIndex?: boolean;
                GenPtsInput?: boolean;
                SupportsTranscoding?: boolean;
                SupportsDirectStream?: boolean;
                SupportsDirectPlay?: boolean;
                IsInfiniteStream?: boolean;
                RequiresOpening?: boolean;
                OpenToken?: string | null;
                RequiresClosing?: boolean;
                LiveStreamId?: string | null;
                BufferMs?: number | null;
                RequiresLooping?: boolean;
                SupportsProbing?: boolean;
                VideoType?: ('VideoFile' | 'Iso' | 'Dvd' | 'BluRay') | null;
                IsoType?: ('Dvd' | 'BluRay') | null;
                Video3DFormat?: ('HalfSideBySide' | 'FullSideBySide' | 'FullTopAndBottom' | 'HalfTopAndBottom' | 'MVC') | null;
                MediaStreams?: Array<{
                    Codec?: string | null;
                    CodecTag?: string | null;
                    Language?: string | null;
                    ColorRange?: string | null;
                    ColorSpace?: string | null;
                    ColorTransfer?: string | null;
                    ColorPrimaries?: string | null;
                    DvVersionMajor?: number | null;
                    DvVersionMinor?: number | null;
                    DvProfile?: number | null;
                    DvLevel?: number | null;
                    RpuPresentFlag?: number | null;
                    ElPresentFlag?: number | null;
                    BlPresentFlag?: number | null;
                    DvBlSignalCompatibilityId?: number | null;
                    Comment?: string | null;
                    TimeBase?: string | null;
                    CodecTimeBase?: string | null;
                    Title?: string | null;
                    VideoRange?: 'Unknown' | 'SDR' | 'HDR';
                    VideoRangeType?: 'Unknown' | 'SDR' | 'HDR10' | 'HLG' | 'DOVI' | 'DOVIWithHDR10' | 'DOVIWithHLG' | 'DOVIWithSDR' | 'HDR10Plus';
                    VideoDoViTitle?: string | null;
                    LocalizedUndefined?: string | null;
                    LocalizedDefault?: string | null;
                    LocalizedForced?: string | null;
                    LocalizedExternal?: string | null;
                    LocalizedHearingImpaired?: string | null;
                    DisplayTitle?: string | null;
                    NalLengthSize?: string | null;
                    IsInterlaced?: boolean;
                    IsAVC?: boolean | null;
                    ChannelLayout?: string | null;
                    BitRate?: number | null;
                    BitDepth?: number | null;
                    RefFrames?: number | null;
                    PacketLength?: number | null;
                    Channels?: number | null;
                    SampleRate?: number | null;
                    IsDefault?: boolean;
                    IsForced?: boolean;
                    IsHearingImpaired?: boolean;
                    Height?: number | null;
                    Width?: number | null;
                    AverageFrameRate?: number | null;
                    RealFrameRate?: number | null;
                    Profile?: string | null;
                    Type?: 'Audio' | 'Video' | 'Subtitle' | 'EmbeddedImage' | 'Data' | 'Lyric';
                    AspectRatio?: string | null;
                    Index?: number;
                    Score?: number | null;
                    IsExternal?: boolean;
                    DeliveryMethod?: ('Encode' | 'Embed' | 'External' | 'Hls' | 'Drop') | null;
                    DeliveryUrl?: string | null;
                    IsExternalUrl?: boolean | null;
                    IsTextSubtitleStream?: boolean;
                    SupportsExternalStream?: boolean;
                    Path?: string | null;
                    PixelFormat?: string | null;
                    Level?: number | null;
                    IsAnamorphic?: boolean | null;
                }> | null;
                MediaAttachments?: Array<{
                    Codec?: string | null;
                    CodecTag?: string | null;
                    Comment?: string | null;
                    Index?: number;
                    FileName?: string | null;
                    MimeType?: string | null;
                    DeliveryUrl?: string | null;
                }> | null;
                Formats?: Array<string> | null;
                Bitrate?: number | null;
                RequiredHttpHeaders?: {
                    [key: string]: string;
                } | null;
                TranscodingUrl?: string | null;
                TranscodingContainer?: string | null;
                AnalyzeDurationMs?: number | null;
                DefaultAudioStreamIndex?: number | null;
                DefaultSubtitleStreamIndex?: number | null;
            }> | null;
            CriticRating?: number | null;
            ProductionLocations?: Array<string> | null;
            Path?: string | null;
            EnableMediaSourceDisplay?: boolean | null;
            OfficialRating?: string | null;
            CustomRating?: string | null;
            ChannelId?: string | null;
            ChannelName?: string | null;
            Overview?: string | null;
            Taglines?: Array<string> | null;
            Genres?: Array<string> | null;
            CommunityRating?: number | null;
            CumulativeRunTimeTicks?: number | null;
            RunTimeTicks?: number | null;
            AspectRatio?: string | null;
            ProductionYear?: number | null;
            IsPlaceHolder?: boolean | null;
            Number?: string | null;
            ChannelNumber?: string | null;
            IndexNumber?: number | null;
            IndexNumberEnd?: number | null;
            ParentIndexNumber?: number | null;
            ProviderIds?: {
                [key: string]: string;
            } | null;
            IsHD?: boolean | null;
            IsFolder?: boolean | null;
            ParentId?: string | null;
            Type: 'AggregateFolder' | 'Audio' | 'AudioBook' | 'BasePluginFolder' | 'Book' | 'BoxSet' | 'Channel' | 'ChannelFolderItem' | 'CollectionFolder' | 'Episode' | 'Folder' | 'Genre' | 'ManualPlaylistsFolder' | 'Movie' | 'LiveTvChannel' | 'LiveTvProgram' | 'MusicAlbum' | 'MusicArtist' | 'MusicGenre' | 'MusicVideo' | 'Person' | 'Photo' | 'PhotoAlbum' | 'Playlist' | 'PlaylistsFolder' | 'Program' | 'Recording' | 'Season' | 'Series' | 'Studio' | 'Trailer' | 'TvChannel' | 'TvProgram' | 'UserRootFolder' | 'UserView' | 'Video' | 'Year';
            People?: Array<{
                Name: string;
                Id: string;
                Role?: string | null;
                Type?: string | null;
                PrimaryImageTag?: string | null;
                ImageBlurHashes?: {
                    Backdrop?: {
                        [key: string]: string;
                    } | null;
                    Primary?: {
                        [key: string]: string;
                    } | null;
                    Logo?: {
                        [key: string]: string;
                    } | null;
                    Thumb?: {
                        [key: string]: string;
                    } | null;
                } | null;
            }> | null;
            Studios?: Array<{
                Name?: string | null;
                Id?: string;
            }> | null;
            GenreItems?: Array<{
                Name?: string | null;
                Id?: string;
            }> | null;
            ParentLogoItemId?: string | null;
            ParentBackdropItemId?: string | null;
            ParentBackdropImageTags?: Array<string> | null;
            LocalTrailerCount?: number | null;
            RecursiveItemCount?: number | null;
            ChildCount?: number | null;
            SeriesName?: string | null;
            SeriesId?: string | null;
            SeasonId?: string | null;
            SpecialFeatureCount?: number | null;
            DisplayPreferencesId?: string | null;
            Status?: string | null;
            AirTime?: string | null;
            Tags?: Array<string> | null;
            PrimaryImageAspectRatio?: number | null;
            Artists?: Array<string> | null;
            ArtistItems?: Array<{
                Name?: string | null;
                Id?: string;
            }> | null;
            Album?: string | null;
            CollectionType?: ('unknown' | 'movies' | 'tvshows' | 'music' | 'musicvideos' | 'trailers' | 'homevideos' | 'boxsets' | 'books' | 'photos' | 'livetv' | 'playlists' | 'folders') | null;
            DisplayOrder?: string | null;
            AlbumId?: string | null;
            AlbumPrimaryImageTag?: string | null;
            SeriesPrimaryImageTag?: string | null;
            AlbumArtist?: string | null;
            AlbumArtists?: Array<{
                Name?: string | null;
                Id?: string;
            }> | null;
            SeasonName?: string | null;
            MediaStreams?: Array<{
                Codec?: string | null;
                CodecTag?: string | null;
                Language?: string | null;
                ColorRange?: string | null;
                ColorSpace?: string | null;
                ColorTransfer?: string | null;
                ColorPrimaries?: string | null;
                DvVersionMajor?: number | null;
                DvVersionMinor?: number | null;
                DvProfile?: number | null;
                DvLevel?: number | null;
                RpuPresentFlag?: number | null;
                ElPresentFlag?: number | null;
                BlPresentFlag?: number | null;
                DvBlSignalCompatibilityId?: number | null;
                Comment?: string | null;
                TimeBase?: string | null;
                CodecTimeBase?: string | null;
                Title?: string | null;
                VideoRange?: 'Unknown' | 'SDR' | 'HDR';
                VideoRangeType?: 'Unknown' | 'SDR' | 'HDR10' | 'HLG' | 'DOVI' | 'DOVIWithHDR10' | 'DOVIWithHLG' | 'DOVIWithSDR' | 'HDR10Plus';
                VideoDoViTitle?: string | null;
                LocalizedUndefined?: string | null;
                LocalizedDefault?: string | null;
                LocalizedForced?: string | null;
                LocalizedExternal?: string | null;
                LocalizedHearingImpaired?: string | null;
                DisplayTitle?: string | null;
                NalLengthSize?: string | null;
                IsInterlaced?: boolean;
                IsAVC?: boolean | null;
                ChannelLayout?: string | null;
                BitRate?: number | null;
                BitDepth?: number | null;
                RefFrames?: number | null;
                PacketLength?: number | null;
                Channels?: number | null;
                SampleRate?: number | null;
                IsDefault?: boolean;
                IsForced?: boolean;
                IsHearingImpaired?: boolean;
                Height?: number | null;
                Width?: number | null;
                AverageFrameRate?: number | null;
                RealFrameRate?: number | null;
                Profile?: string | null;
                Type?: 'Audio' | 'Video' | 'Subtitle' | 'EmbeddedImage' | 'Data' | 'Lyric';
                AspectRatio?: string | null;
                Index?: number;
                Score?: number | null;
                IsExternal?: boolean;
                DeliveryMethod?: ('Encode' | 'Embed' | 'External' | 'Hls' | 'Drop') | null;
                DeliveryUrl?: string | null;
                IsExternalUrl?: boolean | null;
                IsTextSubtitleStream?: boolean;
                SupportsExternalStream?: boolean;
                Path?: string | null;
                PixelFormat?: string | null;
                Level?: number | null;
                IsAnamorphic?: boolean | null;
            }> | null;
            VideoType?: ('VideoFile' | 'Iso' | 'Dvd' | 'BluRay') | null;
            PartCount?: number | null;
            MediaSourceCount?: number | null;
            ImageTags?: {
                [key: string]: string;
            } | null;
            BackdropImageTags?: Array<string> | null;
            ScreenshotImageTags?: Array<string> | null;
            ParentLogoImageTag?: string | null;
            ParentArtItemId?: string | null;
            ParentArtImageTag?: string | null;
            SeriesThumbImageTag?: string | null;
            ImageBlurHashes?: {
                Primary?: {
                    [key: string]: string;
                };
                Art?: {
                    [key: string]: string;
                };
                Backdrop?: {
                    [key: string]: string;
                };
                Banner?: {
                    [key: string]: string;
                };
                Logo?: {
                    [key: string]: string;
                };
                Thumb?: {
                    [key: string]: string;
                };
                Disc?: {
                    [key: string]: string;
                };
                Box?: {
                    [key: string]: string;
                };
                Screenshot?: {
                    [key: string]: string;
                };
                Menu?: {
                    [key: string]: string;
                };
                Chapter?: {
                    [key: string]: string;
                };
                BoxRear?: {
                    [key: string]: string;
                };
                Profile?: {
                    [key: string]: string;
                };
            } | null;
            SeriesStudio?: string | null;
            ParentThumbItemId?: string | null;
            ParentThumbImageTag?: string | null;
            ParentPrimaryImageItemId?: string | null;
            ParentPrimaryImageTag?: string | null;
            Chapters?: Array<{
                StartPositionTicks?: number;
                Name?: string | null;
                ImagePath?: string | null;
                ImageDateModified?: string;
                ImageTag?: string | null;
            }> | null;
            IsoType?: ('Dvd' | 'BluRay') | null;
            MediaType: 'Unknown' | 'Video' | 'Audio' | 'Photo' | 'Book';
            EndDate?: string | null;
            TrailerCount?: number | null;
            MovieCount?: number | null;
            SeriesCount?: number | null;
            ProgramCount?: number | null;
            EpisodeCount?: number | null;
            SongCount?: number | null;
            AlbumCount?: number | null;
            ArtistCount?: number | null;
            MusicVideoCount?: number | null;
            LockData?: boolean | null;
            Width?: number | null;
            Height?: number | null;
            CameraMake?: string | null;
            CameraModel?: string | null;
            Software?: string | null;
            ExposureTime?: number | null;
            FocalLength?: number | null;
            Aperture?: number | null;
            ShutterSpeed?: number | null;
            Latitude?: number | null;
            Longitude?: number | null;
            Altitude?: number | null;
            IsoSpeedRating?: number | null;
            SeriesTimerId?: string | null;
            ProgramId?: string | null;
            ChannelPrimaryImageTag?: string | null;
            StartDate?: string | null;
            CompletionPercentage?: number | null;
            IsRepeat?: boolean | null;
            EpisodeTitle?: string | null;
            IsMovie?: boolean | null;
            IsSports?: boolean | null;
            IsSeries?: boolean | null;
            IsLive?: boolean | null;
            IsNews?: boolean | null;
            IsKids?: boolean | null;
            IsPremiere?: boolean | null;
            TimerId?: string | null;
            NormalizationGain?: number | null;
        }>;
        TotalRecordCount: number;
        StartIndex?: number | null;
    };
};

export type GetJellyfinLibraryGenresResponse = GetJellyfinLibraryGenresResponses[keyof GetJellyfinLibraryGenresResponses];

export type GetJellyfinLibraryItemsData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        parentId?: string;
        offset?: number;
        limit?: number;
        itemTypes?: string | Array<'AggregateFolder' | 'Audio' | 'AudioBook' | 'BasePluginFolder' | 'Book' | 'BoxSet' | 'Channel' | 'ChannelFolderItem' | 'CollectionFolder' | 'Episode' | 'Folder' | 'Genre' | 'ManualPlaylistsFolder' | 'Movie' | 'LiveTvChannel' | 'LiveTvProgram' | 'MusicAlbum' | 'MusicArtist' | 'MusicGenre' | 'MusicVideo' | 'Person' | 'Photo' | 'PhotoAlbum' | 'Playlist' | 'PlaylistsFolder' | 'Program' | 'Recording' | 'Season' | 'Series' | 'Studio' | 'Trailer' | 'TvChannel' | 'TvProgram' | 'UserRootFolder' | 'UserView' | 'Video' | 'Year'>;
        extraFields?: string | Array<'AirTime' | 'CanDelete' | 'CanDownload' | 'ChannelInfo' | 'Chapters' | 'Trickplay' | 'ChildCount' | 'CumulativeRunTimeTicks' | 'CustomRating' | 'DateCreated' | 'DateLastMediaAdded' | 'DisplayPreferencesId' | 'Etag' | 'ExternalUrls' | 'Genres' | 'HomePageUrl' | 'ItemCounts' | 'MediaSourceCount' | 'MediaSources' | 'OriginalTitle' | 'OfficialRating' | 'Overview' | 'ParentId' | 'Path' | 'People' | 'PlayAccess' | 'ProductionLocations' | 'ProviderIds' | 'PrimaryImageAspectRatio' | 'RecursiveItemCount' | 'Settings' | 'ScreenshotImageTags' | 'SeriesPrimaryImage' | 'SeriesStudio' | 'SortName' | 'SpecialEpisodeNumbers' | 'Studios' | 'Taglines' | 'Tags' | 'RemoteTrailers' | 'MediaStreams' | 'SeasonUserData' | 'ServiceName' | 'ThemeSongIds' | 'ThemeVideoIds' | 'ExternalEtag' | 'PresentationUniqueKey' | 'InheritedParentalRatingValue' | 'ExternalSeriesId' | 'SeriesPresentationUniqueKey' | 'DateLastRefreshed' | 'DateLastSaved' | 'RefreshState' | 'ChannelImage' | 'EnableMediaSourceDisplay' | 'Width' | 'Height' | 'ExtraIds' | 'LocalTrailerCount' | 'IsHD' | 'SpecialFeatureCount'>;
        genres?: string;
        nameStartsWithOrGreater?: string;
        nameStartsWith?: string;
        nameLessThan?: string;
        sortBy?: string | Array<'Default' | 'AiredEpisodeOrder' | 'Album' | 'AlbumArtist' | 'Artist' | 'DateCreated' | 'OfficialRating' | 'DatePlayed' | 'PremiereDate' | 'StartDate' | 'SortName' | 'Name' | 'Random' | 'Runtime' | 'CommunityRating' | 'ProductionYear' | 'PlayCount' | 'CriticRating' | 'IsFolder' | 'IsUnplayed' | 'IsPlayed' | 'SeriesSortName' | 'VideoBitRate' | 'AirTime' | 'Studio' | 'IsFavoriteOrLiked' | 'DateLastContentAdded' | 'SeriesDatePlayed' | 'ParentIndexNumber' | 'IndexNumber' | 'SimilarityScore' | 'SearchScore'>;
        recursive?: boolean | 'true' | 'false' | number;
    };
    url: '/api/jellyfin/{mediaSourceId}/libraries/{libraryId}/items';
};

export type GetJellyfinLibraryItemsErrors = {
    /**
     * Default Response
     */
    404: string;
};

export type GetJellyfinLibraryItemsError = GetJellyfinLibraryItemsErrors[keyof GetJellyfinLibraryItemsErrors];

export type GetJellyfinLibraryItemsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<(({
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | MusicTrack | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }) | (Show | Season | MusicArtist | MusicAlbum)) | ({
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'folder';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'collection';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        })>;
        size: number;
        offset?: number;
    };
};

export type GetJellyfinLibraryItemsResponse = GetJellyfinLibraryItemsResponses[keyof GetJellyfinLibraryItemsResponses];

export type GetApiSessionsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/sessions';
};

export type GetApiSessionsResponses = {
    /**
     * Default Response
     */
    200: {
        [key: string]: Array<{
            type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
            state: string;
            numConnections: number;
            connections: Array<{
                ip: string;
                userAgent?: string;
                lastHeartbeat?: number;
            }>;
        }>;
    };
};

export type GetApiSessionsResponse = GetApiSessionsResponses[keyof GetApiSessionsResponses];

export type DeleteApiChannelsByIdSessionsData = {
    body?: never;
    path: {
        id: number | string;
    };
    query?: never;
    url: '/api/channels/{id}/sessions';
};

export type DeleteApiChannelsByIdSessionsErrors = {
    /**
     * Default Response
     */
    404: string;
};

export type DeleteApiChannelsByIdSessionsError = DeleteApiChannelsByIdSessionsErrors[keyof DeleteApiChannelsByIdSessionsErrors];

export type DeleteApiChannelsByIdSessionsResponses = {
    /**
     * Default Response
     */
    200: {
        type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
        state: string;
        numConnections: number;
        connections: Array<{
            ip: string;
            userAgent?: string;
            lastHeartbeat?: number;
        }>;
    };
    /**
     * Default Response
     */
    201: unknown;
};

export type DeleteApiChannelsByIdSessionsResponse = DeleteApiChannelsByIdSessionsResponses[keyof DeleteApiChannelsByIdSessionsResponses];

export type GetApiChannelsByIdSessionsData = {
    body?: never;
    path: {
        id: number | string;
    };
    query?: never;
    url: '/api/channels/{id}/sessions';
};

export type GetApiChannelsByIdSessionsErrors = {
    /**
     * Default Response
     */
    404: string;
};

export type GetApiChannelsByIdSessionsError = GetApiChannelsByIdSessionsErrors[keyof GetApiChannelsByIdSessionsErrors];

export type GetApiChannelsByIdSessionsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        type: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct' | 'hls_concat' | 'hls_slower_concat' | 'mpegts_concat' | 'hls_direct_concat';
        state: string;
        numConnections: number;
        connections: Array<{
            ip: string;
            userAgent?: string;
            lastHeartbeat?: number;
        }>;
    }>;
};

export type GetApiChannelsByIdSessionsResponse = GetApiChannelsByIdSessionsResponses[keyof GetApiChannelsByIdSessionsResponses];

export type PostApiEmbyLoginData = {
    body: {
        url: string;
        username: string;
        password: string;
    };
    path?: never;
    query?: never;
    url: '/api/emby/login';
};

export type PostApiEmbyLoginResponses = {
    /**
     * Default Response
     */
    200: {
        accessToken?: string;
        userId?: string;
    };
};

export type PostApiEmbyLoginResponse = PostApiEmbyLoginResponses[keyof PostApiEmbyLoginResponses];

export type GetApiEmbyByMediaSourceIdUserLibrariesData = {
    body?: never;
    path: {
        mediaSourceId: string;
    };
    query?: never;
    url: '/api/emby/{mediaSourceId}/user_libraries';
};

export type GetApiEmbyByMediaSourceIdUserLibrariesResponses = {
    /**
     * Default Response
     */
    200: Array<{
        sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
        uuid: string;
        title: string;
        childCount?: number;
        externalId: string;
        childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
        type: 'library';
        locations: Array<{
            path: string;
            type: 'local';
        } | {
            path: string;
            type: 'remote';
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            externalKey: string;
        }>;
        libraryId?: string;
    }>;
};

export type GetApiEmbyByMediaSourceIdUserLibrariesResponse = GetApiEmbyByMediaSourceIdUserLibrariesResponses[keyof GetApiEmbyByMediaSourceIdUserLibrariesResponses];

export type GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsData = {
    body?: never;
    path: {
        mediaSourceId: string;
        libraryId: string;
    };
    query?: {
        offset?: number;
        limit?: number;
        parentId?: string;
        itemTypes?: string | Array<'AggregateFolder' | 'Audio' | 'AudioBook' | 'BasePluginFolder' | 'Book' | 'BoxSet' | 'Channel' | 'ChannelFolderItem' | 'CollectionFolder' | 'Episode' | 'Folder' | 'Genre' | 'ManualPlaylistsFolder' | 'Movie' | 'LiveTvChannel' | 'LiveTvProgram' | 'MusicAlbum' | 'MusicArtist' | 'MusicGenre' | 'MusicVideo' | 'Person' | 'Photo' | 'PhotoAlbum' | 'Playlist' | 'PlaylistsFolder' | 'Program' | 'Recording' | 'Season' | 'Series' | 'Studio' | 'Trailer' | 'TvChannel' | 'TvProgram' | 'UserRootFolder' | 'UserView' | 'Video' | 'Year'>;
        extraFields?: string | Array<'Budget' | 'Chapters' | 'ChildCount' | 'DateCreated' | 'Genres' | 'HomePageUrl' | 'IndexOptions' | 'MediaStreams' | 'Overview' | 'ParentId' | 'Path' | 'People' | 'ProviderIds' | 'PrimaryImageAspectRatio' | 'Revenue' | 'SortName' | 'Studios' | 'Taglines' | 'Etag' | 'Tags' | 'ProductionYear' | 'PremiereDate' | 'MediaSources' | 'OfficialRating'>;
        genres?: string;
        nameStartsWithOrGreater?: string;
        nameStartsWith?: string;
        nameLessThan?: string;
        sortBy?: string | Array<'Album' | 'AlbumArtist' | 'Artist' | 'Budget' | 'CommunityRating' | 'CriticRating' | 'DateCreated' | 'DatePlayed' | 'PlayCount' | 'PremiereDate' | 'ProductionYear' | 'SortName' | 'Random' | 'Revenue' | 'Runtime' | 'IsFolder'>;
        recursive?: boolean | 'true' | 'false' | number;
        artistType?: string | Array<'Artist' | 'AlbumArtist'>;
    };
    url: '/api/emby/{mediaSourceId}/libraries/{libraryId}/items';
};

export type GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsErrors = {
    /**
     * Default Response
     */
    404: string;
};

export type GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsError = GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsErrors[keyof GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsErrors];

export type GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsResponses = {
    /**
     * Default Response
     */
    200: {
        total: number;
        result: Array<(({
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | MusicTrack | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }) | (Show | Season | MusicArtist | MusicAlbum)) | ({
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'folder';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'collection';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        })>;
        size: number;
        offset?: number;
    };
};

export type GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsResponse = GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsResponses[keyof GetApiEmbyByMediaSourceIdLibrariesByLibraryIdItemsResponses];

export type GetApiSettingsMediaSourceData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/settings/media-source';
};

export type GetApiSettingsMediaSourceResponses = {
    /**
     * Default Response
     */
    200: {
        rescanIntervalHours: number;
    };
};

export type GetApiSettingsMediaSourceResponse = GetApiSettingsMediaSourceResponses[keyof GetApiSettingsMediaSourceResponses];

export type PutApiSettingsMediaSourceData = {
    body?: {
        rescanIntervalHours?: number;
    };
    path?: never;
    query?: never;
    url: '/api/settings/media-source';
};

export type PutApiSettingsMediaSourceResponses = {
    /**
     * Default Response
     */
    200: {
        rescanIntervalHours: number;
    };
};

export type PutApiSettingsMediaSourceResponse = PutApiSettingsMediaSourceResponses[keyof PutApiSettingsMediaSourceResponses];

export type DeleteApiTrashData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/trash';
};

export type DeleteApiTrashResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiTrashData = {
    body?: never;
    path?: never;
    query?: {
        itemTypes?: Array<'movie' | 'episode' | 'track' | 'redirect' | 'custom' | 'flex'>;
    };
    url: '/api/trash';
};

export type GetApiTrashResponses = {
    /**
     * Default Response
     */
    200: {
        results: Array<(({
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'movie';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
            summary: string | null;
            plot: string | null;
            tagline: string | null;
            rating: string | null;
        } | Episode | MusicTrack | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'other_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        } | {
            uuid: string;
            canonicalId: string;
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            /**
             * Unique identifier for this item in the external media source
             */
            externalId: string;
            type: 'music_video';
            identifiers: Array<{
                id: string;
                sourceId?: string;
                type: 'plex' | 'plex-guid' | 'imdb' | 'tmdb' | 'tvdb' | 'jellyfin' | 'emby';
            }>;
            title: string;
            sortTitle: string;
            tags: Array<string>;
            mediaSourceId: string;
            libraryId: string;
            originalTitle: string | null;
            year: number | null;
            /**
             * Epoch timestamp
             */
            releaseDate: number | null;
            releaseDateString: string | null;
            mediaItem?: {
                streams: Array<{
                    index: number;
                    codec: string;
                    profile?: string | null;
                    streamType: 'video' | 'audio' | 'subtitles' | 'attachment' | 'external_subtitles';
                    title?: string | null;
                    hasAttachedPicture?: boolean | null;
                    fileName?: string | null;
                    mimeType?: string | null;
                    frameRate?: (string | number) | null;
                    pixelFormat?: string | null;
                    bitDepth?: number | null;
                    colorRange?: string | null;
                    colorSpace?: string | null;
                    colorTransfer?: string | null;
                    colorPrimaries?: string | null;
                    channels?: number | null;
                    sdh?: boolean | null;
                    languageCodeISO6392?: string | null;
                    selected?: boolean | null;
                    default?: boolean | null;
                    forced?: boolean | null;
                }>;
                duration: number;
                sampleAspectRatio?: string | null;
                displayAspectRatio?: string | null;
                frameRate?: (number | string) | null;
                resolution?: {
                    widthPx: number;
                    heightPx: number;
                } | null;
                locations: Array<{
                    path: string;
                    type: 'local';
                } | {
                    path: string;
                    type: 'remote';
                    sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
                    externalKey: string;
                }>;
                chapters?: Array<{
                    index: number;
                    startTime: number;
                    endTime: number;
                    title?: string | null;
                    chapterType: 'chapter' | 'intro' | 'outro';
                }> | null;
                scanKind?: ('unknown' | 'progressive' | 'interlaced') | null;
            };
            actors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                order?: number | null;
                role?: string | null;
                thumb?: string | null;
            }>;
            writers?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            directors?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
                thumb?: string | null;
            }>;
            genres?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            studios?: Array<{
                uuid?: string;
                name: string;
                externalInfo?: {
                    source: 'plex' | 'jellyfin' | 'emby' | 'local';
                    id: string;
                } | null;
            }>;
            duration: number;
            externalSubtitles?: Array<{
                subtitleType: 'embedded' | 'sidecar';
                title?: string | null;
                streamIndex?: number | null;
                codec: string;
                default?: boolean | null;
                forced?: boolean | null;
                sdh?: boolean | null;
                language: string;
                path?: string | null;
            }> | null;
            artwork: Array<{
                id?: string;
                type: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
                path?: string | null;
            }>;
            state: 'ok' | 'missing';
        }) | (Show | Season | MusicArtist | MusicAlbum)) | ({
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'folder';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'collection';
        } | {
            sourceType: 'plex' | 'jellyfin' | 'emby' | 'local';
            uuid: string;
            title: string;
            childCount?: number;
            externalId: string;
            childType?: 'movie' | 'episode' | 'track' | 'music_video' | 'other_video' | 'season' | 'show' | 'album' | 'artist';
            mediaSourceId: string;
            libraryId: string;
            type: 'playlist';
        })>;
        page: number;
        totalPages: number;
        totalHits: number;
        facetDistribution?: {
            [key: string]: {
                [key: string]: number;
            };
        };
    };
};

export type GetApiTrashResponse = GetApiTrashResponses[keyof GetApiTrashResponses];

export type GetApiSmartCollectionsData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/smart_collections';
};

export type GetApiSmartCollectionsResponses = {
    /**
     * Default Response
     */
    200: Array<{
        uuid: string;
        name: string;
        query: string;
    }>;
};

export type GetApiSmartCollectionsResponse = GetApiSmartCollectionsResponses[keyof GetApiSmartCollectionsResponses];

export type PostApiSmartCollectionsData = {
    body: {
        name: string;
        query: string;
    };
    path?: never;
    query?: never;
    url: '/api/smart_collections';
};

export type PostApiSmartCollectionsErrors = {
    /**
     * Default Response
     */
    500: string;
};

export type PostApiSmartCollectionsError = PostApiSmartCollectionsErrors[keyof PostApiSmartCollectionsErrors];

export type PostApiSmartCollectionsResponses = {
    /**
     * Default Response
     */
    201: {
        uuid: string;
        name: string;
        query: string;
    };
};

export type PostApiSmartCollectionsResponse = PostApiSmartCollectionsResponses[keyof PostApiSmartCollectionsResponses];

export type DeleteApiSmartCollectionsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/smart_collections/{id}';
};

export type DeleteApiSmartCollectionsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type DeleteApiSmartCollectionsByIdResponses = {
    /**
     * Default Response
     */
    204: unknown;
};

export type GetApiSmartCollectionsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: never;
    url: '/api/smart_collections/{id}';
};

export type GetApiSmartCollectionsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiSmartCollectionsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        uuid: string;
        name: string;
        query: string;
    };
};

export type GetApiSmartCollectionsByIdResponse = GetApiSmartCollectionsByIdResponses[keyof GetApiSmartCollectionsByIdResponses];

export type PutApiSmartCollectionsByIdData = {
    body?: {
        name?: string;
        query?: string;
    };
    path: {
        id: string;
    };
    query?: never;
    url: '/api/smart_collections/{id}';
};

export type PutApiSmartCollectionsByIdErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type PutApiSmartCollectionsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        uuid: string;
        name: string;
        query: string;
    };
};

export type PutApiSmartCollectionsByIdResponse = PutApiSmartCollectionsByIdResponses[keyof PutApiSmartCollectionsByIdResponses];

export type GetApiCreditsByIdData = {
    body?: never;
    path: {
        id: string;
    };
    query?: {
        type?: 'cast' | 'director' | 'writer' | 'producer';
    };
    url: '/api/credits/{id}';
};

export type GetApiCreditsByIdErrors = {
    /**
     * Default Response
     */
    400: unknown;
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiCreditsByIdResponses = {
    /**
     * Default Response
     */
    200: {
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        order?: number | null;
        role?: string | null;
        thumb?: string | null;
        type: 'actor';
    } | {
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
        type: 'writer';
    } | {
        uuid?: string;
        name: string;
        externalInfo?: {
            source: 'plex' | 'jellyfin' | 'emby' | 'local';
            id: string;
        } | null;
        thumb?: string | null;
        type: 'director';
    };
};

export type GetApiCreditsByIdResponse = GetApiCreditsByIdResponses[keyof GetApiCreditsByIdResponses];

export type GetApiCreditsByIdArtworkByArtworkTypeData = {
    body?: never;
    path: {
        id: string;
        artworkType: 'poster' | 'thumbnail' | 'logo' | 'fanart' | 'watermark' | 'banner' | 'landscape';
    };
    query?: {
        type?: 'cast' | 'director' | 'writer' | 'producer';
    };
    url: '/api/credits/{id}/artwork/{artworkType}';
};

export type GetApiCreditsByIdArtworkByArtworkTypeErrors = {
    /**
     * Default Response
     */
    404: unknown;
};

export type GetApiCreditsByIdArtworkByArtworkTypeResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiVersionData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/version';
};

export type GetApiVersionErrors = {
    /**
     * Default Response
     */
    500: unknown;
};

export type GetApiVersionResponses = {
    /**
     * Default Response
     */
    200: {
        tunarr: string;
        ffmpeg: string;
        nodejs: string;
    };
};

export type GetApiVersionResponse = GetApiVersionResponses[keyof GetApiVersionResponses];

export type GetApiFfmpegInfoData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/ffmpeg-info';
};

export type GetApiFfmpegInfoResponses = {
    /**
     * Default Response
     */
    200: {
        audioEncoders: Array<{
            name: string;
            ffmpegName: string;
        }>;
        videoEncoders: Array<{
            name: string;
            ffmpegName: string;
        }>;
        hardwareAccelerationTypes: Array<string>;
    };
};

export type GetApiFfmpegInfoResponse = GetApiFfmpegInfoResponses[keyof GetApiFfmpegInfoResponses];

export type PostApiUploadImageData = {
    body?: unknown;
    path?: never;
    query?: never;
    url: '/api/upload/image';
};

export type PostApiUploadImageErrors = {
    /**
     * Default Response
     */
    400: unknown;
};

export type PostApiUploadImageResponses = {
    /**
     * Default Response
     */
    200: {
        name: string;
        fileUrl: string;
    };
};

export type PostApiUploadImageResponse = PostApiUploadImageResponses[keyof PostApiUploadImageResponses];

export type GetApiXmltvLastRefreshData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv-last-refresh';
};

export type GetApiXmltvLastRefreshResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetApiXmltvXmlData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv.xml';
};

export type GetApiXmltvXmlResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type HeadApiXmltvXmlData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv.xml';
};

export type HeadApiXmltvXmlResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type PostApiXmltvRefreshData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/xmltv/refresh';
};

export type PostApiXmltvRefreshResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type DeleteApiChannelsM3uData = {
    body?: never;
    path?: never;
    query?: never;
    url: '/api/channels.m3u';
};

export type DeleteApiChannelsM3uResponses = {
    /**
     * Default Response
     */
    204: unknown;
};

export type GetApiChannelsM3uData = {
    body?: never;
    path?: never;
    query?: {
        forceHttps?: boolean | 'true' | 'false' | number;
        hostOverride?: string;
    };
    url: '/api/channels.m3u';
};

export type GetApiChannelsM3uResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type HeadApiChannelsM3uData = {
    body?: never;
    path?: never;
    query?: {
        forceHttps?: boolean | 'true' | 'false' | number;
        hostOverride?: string;
    };
    url: '/api/channels.m3u';
};

export type HeadApiChannelsM3uResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetFfmpegPlaylistData = {
    body?: never;
    path?: never;
    query: {
        channel: string;
        audioOnly?: boolean | 'true' | 'false' | number;
        mode: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        token?: string;
    };
    url: '/ffmpeg/playlist';
};

export type GetFfmpegPlaylistResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetStreamChannelsByIdData = {
    body?: never;
    path: {
        id: number | string;
    };
    query?: {
        streamMode?: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        token?: string;
        audioOnly?: boolean | 'true' | 'false' | number;
    };
    url: '/stream/channels/{id}';
};

export type GetStreamChannelsByIdResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetStreamChannelsByIdTsData = {
    body?: never;
    path: {
        id: number | string;
    };
    query?: {
        streamMode?: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
        token?: string;
        audioOnly?: boolean | 'true' | 'false' | number;
    };
    url: '/stream/channels/{id}.ts';
};

export type GetStreamChannelsByIdTsResponses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type GetStreamChannelsByIdM3U8Data = {
    body?: never;
    path: {
        id: string | number;
    };
    query?: {
        mode?: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
    };
    url: '/stream/channels/{id}.m3u8';
};

export type GetStreamChannelsByIdM3U8Responses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type HeadStreamChannelsByIdM3U8Data = {
    body?: never;
    path: {
        id: string | number;
    };
    query?: {
        mode?: 'hls' | 'hls_slower' | 'mpegts' | 'hls_direct';
    };
    url: '/stream/channels/{id}.m3u8';
};

export type HeadStreamChannelsByIdM3U8Responses = {
    /**
     * Default Response
     */
    200: unknown;
};

export type ClientOptions = {
    baseURL: string;
};