import { IDeliveryClientConfig } from '../config'; import { Contracts } from '../contracts'; import { IContentItem, IContentItemsContainer, IContentItemWithRawDataContainer } from '../models'; export interface IMapItemResult { item: TContentItem; processedItems: IContentItemsContainer; preparedItems: IContentItemWithRawDataContainer; processingStartedForCodenames: string[]; } export interface IMultipleItemsMapResult { items: TContentItem[]; linkedItems: IContentItemsContainer; } export interface ISingleItemMapResult { item: TContentItem; linkedItems: IContentItemsContainer; } export declare class ItemMapper { readonly config: IDeliveryClientConfig; private readonly elementMapper; constructor(config: IDeliveryClientConfig); /** * Maps single item to its proper strongly typed model from the given Kontent response * @param response Kontent response used to map the item * @param queryConfig Query configuration */ mapSingleItemFromResponse(response: Contracts.IViewContentItemContract): ISingleItemMapResult; /** * Maps multiple items to their strongly typed model from the given Kontent response * @param response Kontent response used to map the item * @param queryConfig Query configuration */ mapMultipleItemsFromResponse(response: Contracts.IItemsWithModularContentContract): IMultipleItemsMapResult; /** * Maps item contracts to full models */ mapItems(data: { mainItems: Contracts.IContentItemContract[]; linkedItems: Contracts.IContentItemContract[]; }): IMultipleItemsMapResult; /** * Maps item contract to full model */ private mapItem; private createContentItem; }