import { Selection } from 'd3-selection'; import { ComponentCore } from '../component'; import { Spacing } from '../../types/spacing'; import { ContainerConfigInterface } from './config'; export declare class ContainerCore { svg: Selection; element: SVGSVGElement; prevConfig: ContainerConfigInterface; config: ContainerConfigInterface; protected _defaultConfig: ContainerConfigInterface; protected _container: HTMLElement; protected _renderAnimationFrameId: number; protected _isFirstRender: boolean; protected _resizeObserver: ResizeObserver | undefined; protected _resizeObserverAnimationFrameId: number; protected _svgDefs: Selection; protected _svgDefsExternal: Selection; private _containerSize; static DEFAULT_CONTAINER_HEIGHT: number; constructor(element: HTMLElement); updateContainer(config: T): void; protected _preRender(): void; /** Propagates the container's size, margin, and color function to the provided components. * Containers call this during `_preRender` */ protected _propagateSizeAndStyleToComponents(components: (ComponentCore | undefined)[], margin: Spacing): void; protected _render(duration?: number): void; render(duration?: number): void; get containerWidth(): number; get containerHeight(): number; get width(): number; get height(): number; protected _removeAllChildren(): void; /** Reconciles the direct children of the container's SVG element with the provided list: * only inserts / moves elements that are missing or out of order and removes the ones * that are no longer present. Unlike a full detach + re-append, this doesn't interrupt * CSS transitions or reset the internal state of unaffected elements */ protected _reconcileChildren(desiredChildren: (Element | null | undefined)[]): void; protected _onResize(): void; protected _setUpResizeObserver(): void; destroy(): void; }