import { ApiConfig } from '../client';
import { Alias, Comment, CommentSortByMedia, List, ListQueryByType, MediaRating, MovieStats, TraktApiContent, UpdatedIDs, UpdatedStartDate, UserProfile } from '../trakt';
import { RecommendedPeriod } from '../trakt/media/recommended';
import { Pagination, Filters } from '../utils';
/**
 *
 * @param ApiConfig
 * @param type
 * @returns
 * @internal
 */
export declare function getTrendingMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, }: {
    pagination: Pagination;
    filters?: Filters;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 *
 * @param ApiConfig
 * @param type
 * @returns
 * @internal
 */
export declare function getPopularMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, }: {
    pagination: Pagination;
    filters?: Filters;
}): Promise<import("../utils").ApiResponse<TraktApiContent[]>>;
/**
 * Gets recommended media for shows and movies
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getRecommendedMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, period, }: {
    pagination: Pagination;
    filters?: Filters;
    period?: RecommendedPeriod;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets most played media for shows and movies
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getPlayedMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, period, }: {
    pagination: Pagination;
    filters?: Filters;
    period?: RecommendedPeriod;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets recently updated media
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getUpdatesMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, startDate, }: {
    pagination: Pagination;
    startDate?: UpdatedStartDate;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets recently updated ids of media
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getUpdatedIDsMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, startDate, }: {
    pagination: Pagination;
    startDate?: UpdatedStartDate;
}): Promise<import("../utils").ApiResponse<UpdatedIDs>>;
/**
 * Gets all title aliases for media
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getAliasesMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { mediaID, }: {
    mediaID: string;
}): Promise<import("../utils").ApiResponse<Alias[]>>;
/**
 * Gets most anticipated media for shows and movies
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getAnticipatedMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, }: {
    pagination: Pagination;
    filters?: Filters;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets most watched (unique users) media for shows and movies
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getWatchedMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, period, }: {
    pagination: Pagination;
    filters?: Filters;
    period?: RecommendedPeriod;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets the media with the biggest box office revenue
 * @param ApiConfig
 * @param type
 * @returns
 */
export declare function getBoxOfficeMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows'): Promise<import("../utils").ApiResponse<T>>;
/**
 * Gets most collected (unique users) media for shows and movies
 * @param ApiConfig
 * @param type
 * @param options
 * @returns
 */
export declare function getCollectedMedia<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', { pagination, filters, period, }: {
    pagination: Pagination;
    filters?: Filters;
    period?: RecommendedPeriod;
}): Promise<import("../utils").ApiResponse<T>>;
/**
 *
 * @param ApiConfig
 * @param movieId
 * @returns
 * @internal
 */
export declare function getMediaPeople<T>({ client, apiUrl }: ApiConfig, movieId: string): Promise<import("../utils").ApiResponse<T>>;
/**
 *
 * @param ApiConfig
 * @param showId
 * @returns
 * @internal
 */
export declare function getMediaSummary_Full<T>({ client, apiUrl }: ApiConfig, showId: string): Promise<import("../utils").ApiResponse<T>>;
export declare function getMediaTranslations<T>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string, language?: string): Promise<import("../utils").ApiResponse<T>>;
export declare function getMediaComments({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string, { pagination, sort, }: {
    pagination: Pagination;
    sort?: CommentSortByMedia;
}): Promise<import("../utils").ApiResponse<Comment[]>>;
export declare function getListsWithMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string, { pagination, type: listType, sort, }: {
    pagination: Pagination;
    type?: ListQueryByType;
    sort?: CommentSortByMedia;
}): Promise<import("../utils").ApiResponse<List[]>>;
export declare function getMediaRating({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string): Promise<import("../utils").ApiResponse<MediaRating>>;
export declare function getRelatedMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string, { pagination, }: {
    pagination: Pagination;
}): Promise<import("../utils").ApiResponse<TraktApiContent[]>>;
export declare function getMediaStats<T extends MovieStats>({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string): Promise<import("../utils").ApiResponse<T>>;
export declare function getWatchingMedia({ client, apiUrl }: ApiConfig, type: 'movies' | 'shows', mediaId: string): Promise<import("../utils").ApiResponse<UserProfile[]>>;
//# sourceMappingURL=methods.d.ts.map