import { IFirstPage, Paginated } from "./api/paginated"; import { IPrimeApiOpts } from "./config"; import { IAvailability, ISearchOpts, ISearchResult } from "./model"; import { IEpisode, IWatchNextItem } from "./api/types"; export { IEpisode }; export declare function generateFrcCookies(deviceId: string, language: string): Promise; declare type PromiseType> = T extends Promise ? R : never; export declare type ITitleInfo = PromiseType>; export interface IResumeInfo { titleId: string; watchedSeconds?: number; queue?: string[]; } export declare class PrimeApi { readonly deviceId: string; private readonly opts; private readonly language; private readonly deviceNameBase; private accessToken; private accessTokenExpiresAt; constructor(options?: IPrimeApiOpts); login(email: string, password: string): Promise<{ cookies: any; refreshToken: any; }>; generatePreAuthorizedLinkCode(refreshToken: string): Promise; search(title: string, searchOpts?: ISearchOpts): AsyncIterable; guessResumeInfo(titleId: string): Promise; watchNextItems(): Promise | undefined>; getHomePage(): Promise<{ watchNext?: IFirstPage | undefined; }>; /** * This is very similar to `watchNextItems` but is missing things * like watchUrl, id while adding cover art (and, at least for now, * lacking pagination) */ nextUpItems(): AsyncGenerator, "id">, void, unknown>; getTitleInfo(titleId: string): Promise<{ episodes?: IEpisode[] | undefined; movie?: { title: string; titleId: string; } | undefined; series?: { title: string; titleId: string; } | undefined; seasons?: { title: string; titleId: string; }[] | undefined; seasonIds?: string[] | undefined; seasonIdSet?: Set | undefined; selectedEpisode?: (IEpisode & { isSelected?: boolean | undefined; }) | undefined; }>; getLanguage(): string; private resolveNext; private resolveQueue; private buildUrl; private buildApiUrl; private apiDomain; private generateDeviceData; private generateHeaders; private getAccessToken; /** * This search method has reliable entitlement info, but fails * to provide watchlist attachment */ private searchWithEntitlement; /** * This search method has watchlist presence included, but fails * to provide "Free with ads" availability */ private searchWithWatchlist; private swiftApiCollectionRequest; private swiftApiRequest; }