import * as React from 'react';
import { TemplateProps } from './customization';
import { Element } from './elements';
import { DiagramModel } from './model';
import { MutableRenderingState } from './renderingState';
export interface ElementLayerProps {
    model: DiagramModel;
    renderingState: MutableRenderingState;
    style: React.CSSProperties;
}
interface State {
    readonly version: number;
    readonly elementStates: ReadonlyMap<string, ElementState>;
}
interface ElementState {
    element: Element;
    templateProps: TemplateProps;
    blurred: boolean;
}
export declare class ElementLayer extends React.Component<ElementLayerProps, State> {
    private readonly listener;
    private redrawBatch;
    private delayedRedraw;
    private readonly memoizedElements;
    private sizeRequests;
    private delayedUpdateSizes;
    constructor(props: ElementLayerProps);
    render(): import("react/jsx-runtime").JSX.Element;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private requestRedraw;
    private requestRedrawAll;
    private redrawElements;
    private requestSizeUpdate;
    private recomputeQueuedSizes;
}
export {};
//# sourceMappingURL=elementLayer.d.ts.map