import HeaderObject from "../types/HeaderObject"; export interface DimensionManagerConfig { effectiveHeaders: HeaderObject[]; headerHeight?: number; rowHeight: number; height?: string | number; maxHeight?: string | number; totalRowCount: number; footerHeight?: number; containerElement?: HTMLElement; /** * Visible portion of the table inside an external scroll parent (in pixels). * Drives virtualization when neither `height` nor `maxHeight` is set. */ externalViewportHeight?: number; } export interface DimensionManagerState { containerWidth: number; calculatedHeaderHeight: number; maxHeaderDepth: number; contentHeight: number | undefined; } type StateChangeCallback = (state: DimensionManagerState) => void; export declare class DimensionManager { private config; private state; private subscribers; private resizeObserver; private rafId; /** Set when applyContainerWidthSync updates state before any subscriber exists. */ private initialNotifyPending; constructor(config: DimensionManagerConfig); private getHeaderDepth; private calculateMaxHeaderDepth; private calculateHeaderHeight; private convertHeightToPixels; private calculateContentHeight; private observeContainer; private applyContainerWidthSync; updateConfig(config: Partial): void; subscribe(callback: StateChangeCallback): () => void; private notifySubscribers; getState(): DimensionManagerState; getContainerWidth(): number; getCalculatedHeaderHeight(): number; getMaxHeaderDepth(): number; getContentHeight(): number | undefined; destroy(): void; } export {};