import { Podcast, PodcastProcessingStatus, PodcastType, SimplifiedPodcast } from '../stores/class/general/podcast'; import { ListClassicReturn } from '../stores/class/general/listReturn'; import { Paginable } from './types'; export declare enum PodcastSort { DATE = "DATE", DATE_ASC = "DATE_ASC", NAME = "NAME", LAST_PODCAST_DESC = "LAST_PODCAST_DESC", POPULARITY = "POPULARITY", SCORE = "SCORE", UPDATE_ASC = "UPDATE_ASC", UPDATE_DESC = "UPDATE_DESC", /** Smart sort using seasons settings */ SEASONAL = "SEASONAL" } export declare enum PodcastMonetisation { YES = "YES", NO = "NO", UNDEFINED = "UNDEFINED" } /** * The options available to search for podcasts. * * ** /!\ This list is not exhaustive ** */ export interface PodcastSearchOptions extends Paginable { /** Filter by emission ID */ emissionId?: number | number[]; /** Filter by emission groups */ groupId?: number[]; /** Filter by organisation ID */ organisationId?: string[]; /** Filter by title containing */ query?: string; /** Filter by IAB category */ iabId?: number; /** Filter by participant */ participantId?: number; /** Fitler by monetisation */ monetisable?: PodcastMonetisation; /** Filter by pub date before */ pubDateBefore?: string; /** Filter by pub date after */ pubDateAfter?: string; /** Filter by rubriquage exclusion ? */ noRubriquageId?: Array; /** Filter by rubrique */ rubriqueId?: Array; /** Filter by rubriquage */ rubriquageId?: Array; /** Also show hidden podcasts */ includeHidden?: boolean; /** Filter by validity */ validity?: boolean; /** Filter by status */ processingStatus?: Array; /** Filter by podcast having a video */ withVideo?: boolean; /** Filter by tags */ tags?: Array; /** Filter by beneficiaries/rights holder reference */ beneficiaries?: Array; /** Filter by seasons */ season?: Array; /** Filter by season episode number */ seasonEpisode?: Array; /** Filter by episode type */ episodeType?: PodcastType; } declare function downloadRegister(podcastId: number, parameters?: Record): Promise<{ location: string; downloadId: number; }>; /** * Get a podcast by its ID */ declare function get(podcastId: number): Promise; /** * Search for podcasts. Retrieved podcasts are 'incomplete', some of their * properties are only IDs. * Use `searchFull` to get full podcasts, but more queries will be made * @param options The search criterias * @param adaptParameters If true, some adjustments will be made to the parameters * @return A list of simplified podcasts */ declare function search(options: PodcastSearchOptions, adaptParameters?: boolean): Promise>; /** * Count podcasts matching the filters * @param options The search criterias * @param adaptParameters If true, some adjustments will be made to the parameters * @return A list of simplified podcasts */ declare function count(options: PodcastSearchOptions, adaptParameters?: boolean): Promise; /** * Retrieve the podcasts matching the search criterias, with all their data. * This query is longer, because it also needs to retrieve organisations & * emissions. * @param options The search criterias * @param adaptParameters If true, some adjustments will be made to the parameters * @return A list of podcasts */ declare function searchFull(options: PodcastSearchOptions, adaptParameters?: boolean): Promise>; export declare const podcastApi: { count: typeof count; downloadRegister: typeof downloadRegister; get: typeof get; search: typeof search; searchFull: typeof searchFull; }; export {};