/** * @typedef {import("./element-style-observer.js").StyleObserverCallback} StyleObserverCallback */ /** * @typedef { Object } StyleObserverOptions * @property {string | string[]} [properties] - The properties to observe. * @property {Element | Element[]} [targets] - The elements to observe. */ export default class StyleObserver { /** * @param {StyleObserverCallback} callback * @param {StyleObserverOptions | string | string[]} [options] */ constructor(callback: StyleObserverCallback, options?: StyleObserverOptions | string | string[]); /** * @type { WeakMap } */ elementObservers: WeakMap; callback: import("./element-style-observer.js").StyleObserverCallback; options: StyleObserverOptions; changed(records: import("./element-style-observer.js").Record[]): void; /** * Observe one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ observe(targets: Element | Element[], properties: string | string[]): void; /** * Observe one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ observe(properties: string | string[], targets: Element | Element[]): void; /** * Observe one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ observe(...propertiesOrTargets: (string | Element | (string | Element)[])[]): void; /** * Stop observing one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ unobserve(targets: Element | Element[], properties: string | string[]): void; /** * Stop observing one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ unobserve(properties: string | string[], targets: Element | Element[]): void; /** * Stop observing one or more targets for changes to one or more CSS properties. * * @overload * @param {Element | Element[]} targets * @param {string | string[]} properties * @returns {void} * * @overload * @param {string | string[]} properties * @param {Element | Element[]} targets * @returns {void} * * @overload * @param {...(string | Element | (string | Element)[]) } propertiesOrTargets * @returns {void} */ unobserve(...propertiesOrTargets: (string | Element | (string | Element)[])[]): void; /** * Update the transition for one or more targets. * @param {Element | Element[]} targets * @returns {void} */ updateTransition(targets: Element | Element[]): void; } export type StyleObserverCallback = import("./element-style-observer.js").StyleObserverCallback; export type StyleObserverOptions = { /** * - The properties to observe. */ properties?: string | string[]; /** * - The elements to observe. */ targets?: Element | Element[]; }; import ElementStyleObserver from "./element-style-observer.js";