interface StyleObserverChangeObject { value: string; previousValue: string; changed: boolean; element: HTMLElement; } type StyleObserverChangesWithObjects = { [key: string]: StyleObserverChangeObject; }; type StyleObserverChangesWithValues = { [key: string]: StyleObserverChangeValue; }; type StyleObserverChangeValue = string; export type StyleObserverChanges = StyleObserverChangesWithObjects | StyleObserverChangesWithValues; export type StyleObserverCallback = (values: Readonly) => void; type CachedValues = { [key: string]: string; }; export declare enum ReturnFormat { VALUE_ONLY = "value_only", OBJECT = "object" } export declare enum NotificationMode { CHANGED_ONLY = "changed_only", ALL = "all" } export interface StyleObserverConfig { properties: string[]; notificationMode?: NotificationMode; returnFormat?: ReturnFormat; } export declare class StyleObserver { _observedElements: Set; _cachedValues: WeakMap; constructor(callback: StyleObserverCallback, config?: StyleObserverConfig); observe(targetElement: HTMLElement): void; unobserve(targetElement?: HTMLElement): void; private _observedVariables; private _callback; private _eventHandler; private _notificationMode; private _returnFormat; private _setTargetElementStyles; private _unsetTargetElementStyles; private _processComputedStyle; private _getFormatter; private _handleUpdate; } export default StyleObserver;