import { IBaseResponse } from 'kentico-cloud-core';
import { IDeliveryClientConfig } from '../config';
import { ElementContracts, ItemContracts, TaxonomyContracts, TypeContracts } from '../data-contracts';
import { ElementResponses, ICloudResponseDebug, IContentItem, IItemQueryConfig, ItemResponses, TaxonomyResponses, TypeResponses } from '../models';
import { IRichTextHtmlParser } from '../parser';
export interface IMappingService {
    listContentTypesResponse(response: IBaseResponse<TypeContracts.IListContentTypeContract>): TypeResponses.ListContentTypesResponse;
    viewContentTypeResponse(response: IBaseResponse<TypeContracts.IViewContentTypeContract>): TypeResponses.ViewContentTypeResponse;
    viewContentItemResponse<TItem extends IContentItem = IContentItem>(response: IBaseResponse<ItemContracts.IViewContentItemContract>, queryConfig: IItemQueryConfig): ItemResponses.ViewContentItemResponse<TItem>;
    listContentItemsResponse<TItem extends IContentItem = IContentItem>(response: IBaseResponse<ItemContracts.IListContentItemsContract>, queryConfig: IItemQueryConfig): ItemResponses.ListContentItemsResponse<TItem>;
    viewTaxonomyGroupResponse(response: IBaseResponse<TaxonomyContracts.IViewTaxonomyGroupContract>): TaxonomyResponses.ViewTaxonomyGroupResponse;
    listTaxonomyGroupsResponse(response: IBaseResponse<TaxonomyContracts.IListTaxonomyGroupsContract>): TaxonomyResponses.ListTaxonomyGroupsResponse;
    viewContentTypeElementResponse(response: IBaseResponse<ElementContracts.IViewContentTypeElementContract>): ElementResponses.ViewContentTypeElementResponse;
    mapResponseDebug(response: IBaseResponse<any>): ICloudResponseDebug;
}
export declare class MappingService implements IMappingService {
    readonly config: IDeliveryClientConfig;
    readonly richTextHtmlParser: IRichTextHtmlParser;
    private readonly typeMapper;
    private readonly itemMapper;
    private readonly taxonomyMapper;
    private readonly genericElementMapper;
    constructor(config: IDeliveryClientConfig, richTextHtmlParser: IRichTextHtmlParser);
    /**
     * Gets response for getting a single type
     * @param response Response data
     */
    listContentTypesResponse(response: IBaseResponse<TypeContracts.IListContentTypeContract>): TypeResponses.ListContentTypesResponse;
    /**
     * Gets resposne for getting multiple types
     * @param response Response data
     * @param options Options
     */
    viewContentTypeResponse(response: IBaseResponse<TypeContracts.IViewContentTypeContract>): TypeResponses.ViewContentTypeResponse;
    /**
     * Gets response for getting single item
     * @param response Response data
     * @param queryConfig Query configuration
     */
    viewContentItemResponse<TItem extends IContentItem = IContentItem>(response: IBaseResponse<ItemContracts.IViewContentItemContract>, queryConfig: IItemQueryConfig): ItemResponses.ViewContentItemResponse<TItem>;
    /**
     * Gets response for getting multiple items
     * @param response Response data
     * @param queryConfig Query configuration
     */
    listContentItemsResponse<TItem extends IContentItem = IContentItem>(response: IBaseResponse<ItemContracts.IListContentItemsContract>, queryConfig: IItemQueryConfig): ItemResponses.ListContentItemsResponse<TItem>;
    /**
     * Gets response for getting single taxonomy item
     * @param response Response data
     */
    viewTaxonomyGroupResponse(response: IBaseResponse<TaxonomyContracts.IViewTaxonomyGroupContract>): TaxonomyResponses.ViewTaxonomyGroupResponse;
    /**
     * Gets response for getting multiples taxonomies
     * @param response Response data
     */
    listTaxonomyGroupsResponse(response: IBaseResponse<TaxonomyContracts.IListTaxonomyGroupsContract>): TaxonomyResponses.ListTaxonomyGroupsResponse;
    /**
     * Gets response for getting single content type element
     * @param response Response data
     */
    viewContentTypeElementResponse(response: IBaseResponse<ElementContracts.IViewContentTypeElementContract>): ElementResponses.ViewContentTypeElementResponse;
    mapResponseDebug(response: IBaseResponse<any>): ICloudResponseDebug;
}
