import type { MediaClient } from "./MediaClient.js"; import type { Photo, Video } from "../types/media.js"; import type { SearchParams } from "../types/requests.js"; import type { PaginatedResponse } from "../types/pagination.js"; import type { MediaCapabilities } from "../types/capabilities.js"; import type { MediaDownloadEvent, MediaEventMap, MediaViewEvent } from "../events/types.js"; import type { Cache } from "../cache/Cache.js"; import { ApiKeyProvider } from "../auth/ApiKeyProvider.js"; import type { HttpClient } from "../transport/HttpClient.js"; export interface PexelsMediaClientOptions { cache?: Cache; httpClient?: HttpClient; } export declare class PexelsMediaClient implements MediaClient { private readonly auth; readonly capabilities: MediaCapabilities; private readonly baseUrl; private readonly events; private readonly requestManager; private readonly httpClient; on(eventName: K, listener: (event: MediaEventMap[K]) => void): () => void; trackView(event: MediaViewEvent): void; trackDownload(event: MediaDownloadEvent): void; private emit; constructor(auth: ApiKeyProvider, options?: PexelsMediaClientOptions); searchPhotos(params: SearchParams): Promise>; searchVideos(params: SearchParams): Promise>; getPhoto(id: number): Promise; getVideo(id: number): Promise