import { Renderer2, RendererStyleFlags2, InjectionToken } from '@angular/core'; export interface RenderInterceptor { createElement?(name: string, namespace: string | undefined, renderer: Renderer2): Element; createComment?(value: string, renderer: Renderer2): Comment; createText?(value: string, renderer: Renderer2): Text; appendChild?(parent: Node, newChild: Node, renderer: Renderer2): void; insertBefore?(parent: Node, newChild: Node, refChild: Node, renderer: Renderer2): void; removeChild?(parent: Node, oldChild: Node, isHostElement: boolean | undefined, renderer: Renderer2): void; selectRootElement?(selectorOrNode: string | Node, preserveContent: boolean | undefined, renderer: Renderer2): Element; parentNode?(node: Node, renderer: Renderer2): Node; childNodes?(node: Node, renderer: Renderer2): NodeList; nextSibling?(node: Node, renderer: Renderer2): Node; setAttribute?(el: Element, name: string, value: string, namespace: string | undefined, renderer: Renderer2): void; removeAttribute?(el: Element, name: string, namespace: string | undefined, renderer: Renderer2): void; addClass?(el: Element, name: string, renderer: Renderer2): void; removeClass?(el: Element, name: string, renderer: Renderer2): void; setStyle?(el: Element, style: string, value: string | number, flags: RendererStyleFlags2 | undefined, renderer: Renderer2): void; removeStyle?(el: Element, style: string, flags: RendererStyleFlags2 | undefined, renderer: Renderer2): void; setProperty?(el: Element, name: string, value: unknown, renderer: Renderer2): void; setValue?(node: Node, value: string, renderer: Renderer2): void; listen?(target: EventTarget, eventName: string, callback: (event: Event) => boolean | void, renderer: Renderer2): () => void; begin?(): void; end?(): void; } export declare const RENDER_INTERCEPTORS: InjectionToken; export declare class InterceptingRenderer implements Renderer2 { private delegate; private interceptor; destroyNode: null; readonly data: Record; constructor(delegate: Renderer2, interceptor: RenderInterceptor); destroy(): void; createElement(name: string, namespace?: string): Element; createComment(value: string): Comment; createText(value: string): Text; appendChild(parent: Node, newChild: Node): void; insertBefore(parent: Node, newChild: Node, refChild: Node): void; removeChild(parent: Node, oldChild: Node, isHostElement?: boolean): void; selectRootElement(selectorOrNode: string | Node, preserveContent?: boolean): Element; parentNode(node: Node): Node; childNodes(node: Node): NodeList; nextSibling(node: Node): Node; setAttribute(el: Element, name: string, value: string, namespace?: string): void; removeAttribute(el: Element, name: string, namespace?: string): void; addClass(el: Element, name: string): void; removeClass(el: Element, name: string): void; setStyle(el: Element, style: string, value: string | number, flags?: RendererStyleFlags2): void; removeStyle(el: Element, style: string, flags?: RendererStyleFlags2): void; setProperty(el: Element, name: string, value: unknown): void; setValue(node: Node, value: string): void; listen(target: EventTarget, eventName: string, callback: (event: Event) => boolean | void): () => void; } export declare function createInterceptingRenderer(renderer: Renderer2, interceptors: RenderInterceptor[]): Renderer2; export declare class RendererRetriever { renderer: Renderer2; constructor(renderer: Renderer2); }