import { CreatePlayData, CreateResponseData, PdData } from '../slot.interface'; import { Logger } from './Logger'; export interface QueryParams { [key: string]: string; } export interface BodyData { [key: string]: BodyData | string | number | boolean; } export interface GetEpisodeDataByFeedUrlParams { feedUrl: string; episodeGuid: string; } export interface GetEpisodeDataByEpisodeIdParams { id: string; } export interface ClientServiceInterface { setUserAgent(userAgent: string): void; getEpisodeData(params: GetEpisodeDataByFeedUrlParams | GetEpisodeDataByEpisodeIdParams, deviceIdentifier: string): Promise; recordPlays(slotPlays: CreatePlayData[]): Promise; recordResponse(response: CreateResponseData): Promise; flushResponseCache(deviceIdentifier: string): Promise; } export default class ClientService implements ClientServiceInterface { protected userAgent: string; protected currentShowId: string | null; protected currentEpisodeId: string | null; protected responseCache: CreateResponseData[]; protected playCache: CreatePlayData[]; protected logger: Logger; constructor(userAgent: string); setUserAgent(userAgent: string): void; private get cacheDirty(); getEpisodeData(params: GetEpisodeDataByFeedUrlParams | GetEpisodeDataByEpisodeIdParams, deviceIdentifier: string): Promise; recordPlays(slotPlays: CreatePlayData[]): Promise; recordResponse(response: CreateResponseData): Promise; flushResponseCache(deviceIdentifier: string): Promise; }