import { Renderer2 } from '@angular/core';
import { UnifiedInjector } from '../../lazy-loading/unified-injector';
import { SmartEditService } from '../../smart-edit/services/smart-edit.service';
import { ContentSlotComponentData } from '../model/content-slot-component-data.model';
import { ContentSlotData } from '../model/content-slot-data.model';
/**
 * Service that used to add dynamic attributes to CMS component
 * and slot elements.
 */
export declare class DynamicAttributeService {
    protected smartEditService?: SmartEditService;
    protected unifiedInjector?: UnifiedInjector;
    private componentDecorators$;
    private slotDecorators$;
    constructor(smartEditService?: SmartEditService, unifiedInjector?: UnifiedInjector);
    /**
     * @deprecated since 3.2, use functions addAttributesToComponent and addAttributesToSlot instead
     *
     * Add dynamic attributes to DOM.
     * @param element: slot or cms component element
     * @param renderer
     * @param cmsRenderingContext: an object containing properties in each cms item response data
     */
    addDynamicAttributes(element: Element, renderer: Renderer2, cmsRenderingContext: {
        componentData?: ContentSlotComponentData;
        slotData?: ContentSlotData;
    }): void;
    /**
     * Add dynamic attributes to CMS component element
     * @param element: CMS component element
     * @param renderer
     * @param componentData: component data
     */
    addAttributesToComponent(element: Element, renderer: Renderer2, componentData?: ContentSlotComponentData): void;
    /**
     * Add dynamic attributes to CMS slot element
     * @param element: CMS slot element
     * @param renderer
     * @param slotData: slot data
     */
    addAttributesToSlot(element: Element, renderer: Renderer2, slotData?: ContentSlotData): void;
}
