import type { MediaClient } from "../client/MediaClient.js"; import type { HttpClient } from "../transport/HttpClient.js"; import type { Photo, Video } from "../types/media.js"; import type { Pagination } from "../types/pagination.js"; export interface ContractFixtures { photoSearch: { response: unknown; expectedItems: Photo[]; expectedPagination: Pagination; }; photoSearchEmpty: { response: unknown; expectedPagination: Pagination; }; photoSearchWithNext: { response: unknown; expectedPagination: Pagination; }; photoSearchWithPrevious: { response: unknown; expectedPagination: Pagination; }; videoSearch: { response: unknown; expectedItems: Video[]; expectedPagination: Pagination; }; videoSearchEmpty: { response: unknown; expectedPagination: Pagination; }; getPhoto: { id: number; response: unknown; expected: Photo; }; getVideo: { id: number; response: unknown; expected: Video; }; } export type ContractCapability = "searchPhotos" | "searchVideos" | "getPhoto" | "getVideo"; export type ContractCapabilities = Record; export declare function createMediaClientContractTests(name: string, createClient: (httpClient: HttpClient) => MediaClient, fixtures: ContractFixtures, capabilities?: Partial): void;